diff options
Diffstat (limited to 'target/linux/generic/patches-4.4/051-0004-ovl-remove-posix_acl_default-from-workdir.patch')
-rw-r--r-- | target/linux/generic/patches-4.4/051-0004-ovl-remove-posix_acl_default-from-workdir.patch | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/target/linux/generic/patches-4.4/051-0004-ovl-remove-posix_acl_default-from-workdir.patch b/target/linux/generic/patches-4.4/051-0004-ovl-remove-posix_acl_default-from-workdir.patch deleted file mode 100644 index 1785c9ad55..0000000000 --- a/target/linux/generic/patches-4.4/051-0004-ovl-remove-posix_acl_default-from-workdir.patch +++ /dev/null @@ -1,49 +0,0 @@ -From c11b9fdd6a612f376a5e886505f1c54c16d8c380 Mon Sep 17 00:00:00 2001 -From: Miklos Szeredi <mszeredi@redhat.com> -Date: Thu, 1 Sep 2016 11:11:59 +0200 -Subject: [PATCH] ovl: remove posix_acl_default from workdir - -Clear out posix acl xattrs on workdir and also reset the mode after -creation so that an inherited sgid bit is cleared. - -Signed-off-by: Miklos Szeredi <mszeredi@redhat.com> -Cc: <stable@vger.kernel.org> ---- - fs/overlayfs/super.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - ---- a/fs/overlayfs/super.c -+++ b/fs/overlayfs/super.c -@@ -773,6 +773,10 @@ retry: - struct kstat stat = { - .mode = S_IFDIR | 0, - }; -+ struct iattr attr = { -+ .ia_valid = ATTR_MODE, -+ .ia_mode = stat.mode, -+ }; - - if (work->d_inode) { - err = -EEXIST; -@@ -788,6 +792,21 @@ retry: - err = ovl_create_real(dir, work, &stat, NULL, NULL, true); - if (err) - goto out_dput; -+ -+ err = vfs_removexattr(work, XATTR_NAME_POSIX_ACL_DEFAULT); -+ if (err && err != -ENODATA) -+ goto out_dput; -+ -+ err = vfs_removexattr(work, XATTR_NAME_POSIX_ACL_ACCESS); -+ if (err && err != -ENODATA) -+ goto out_dput; -+ -+ /* Clear any inherited mode bits */ -+ mutex_lock(&work->d_inode->i_mutex); -+ err = notify_change(work, &attr, NULL); -+ mutex_unlock(&work->d_inode->i_mutex); -+ if (err) -+ goto out_dput; - } - out_unlock: - mutex_unlock(&dir->i_mutex); |