diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2016-09-16 10:17:27 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2016-09-16 10:17:27 +0200 |
commit | 41eab9048b5c1cd58ed1397d25e691d66d8e215b (patch) | |
tree | 007e06c7e99a6756b319cb132c0d38fb7c4fe4ae /target/linux/generic/patches-4.4/051-0003-ovl-don-t-copy-up-opaqueness.patch | |
parent | a530196f8de4cc532ace01910f505d8c4cc88cc6 (diff) | |
download | upstream-41eab9048b5c1cd58ed1397d25e691d66d8e215b.tar.gz upstream-41eab9048b5c1cd58ed1397d25e691d66d8e215b.tar.bz2 upstream-41eab9048b5c1cd58ed1397d25e691d66d8e215b.zip |
kernel: update kernel 4.4 to version 4.4.21
Refresh patches for all targets that support kernel 4.4.
Compile-tested on brcm2708 only.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/generic/patches-4.4/051-0003-ovl-don-t-copy-up-opaqueness.patch')
-rw-r--r-- | target/linux/generic/patches-4.4/051-0003-ovl-don-t-copy-up-opaqueness.patch | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/target/linux/generic/patches-4.4/051-0003-ovl-don-t-copy-up-opaqueness.patch b/target/linux/generic/patches-4.4/051-0003-ovl-don-t-copy-up-opaqueness.patch deleted file mode 100644 index da9e380a32..0000000000 --- a/target/linux/generic/patches-4.4/051-0003-ovl-don-t-copy-up-opaqueness.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 0956254a2d5b9e2141385514553aeef694dfe3b5 Mon Sep 17 00:00:00 2001 -From: Miklos Szeredi <mszeredi@redhat.com> -Date: Mon, 8 Aug 2016 15:08:49 +0200 -Subject: [PATCH] ovl: don't copy up opaqueness - -When a copy up of a directory occurs which has the opaque xattr set, the -xattr remains in the upper directory. The immediate behavior with overlayfs -is that the upper directory is not treated as opaque, however after a -remount the opaque flag is used and upper directory is treated as opaque. -This causes files created in the lower layer to be hidden when using -multiple lower directories. - -Fix by not copying up the opaque flag. - -To reproduce: - - ----8<---------8<---------8<---------8<---------8<---------8<---- -mkdir -p l/d/s u v w mnt -mount -t overlay overlay -olowerdir=l,upperdir=u,workdir=w mnt -rm -rf mnt/d/ -mkdir -p mnt/d/n -umount mnt -mount -t overlay overlay -olowerdir=u:l,upperdir=v,workdir=w mnt -touch mnt/d/foo -umount mnt -mount -t overlay overlay -olowerdir=u:l,upperdir=v,workdir=w mnt -ls mnt/d - ----8<---------8<---------8<---------8<---------8<---------8<---- - -output should be: "foo n" - -Reported-by: Derek McGowan <dmcg@drizz.net> -Link: https://bugzilla.kernel.org/show_bug.cgi?id=151291 -Signed-off-by: Miklos Szeredi <mszeredi@redhat.com> -Cc: <stable@vger.kernel.org> ---- - fs/overlayfs/copy_up.c | 2 ++ - fs/overlayfs/inode.c | 2 +- - fs/overlayfs/overlayfs.h | 1 + - 3 files changed, 4 insertions(+), 1 deletion(-) - ---- a/fs/overlayfs/copy_up.c -+++ b/fs/overlayfs/copy_up.c -@@ -48,6 +48,8 @@ int ovl_copy_xattr(struct dentry *old, s - } - - for (name = buf; name < (buf + list_size); name += strlen(name) + 1) { -+ if (ovl_is_private_xattr(name)) -+ continue; - retry: - size = vfs_getxattr(old, name, value, value_size); - if (size == -ERANGE) ---- a/fs/overlayfs/inode.c -+++ b/fs/overlayfs/inode.c -@@ -219,7 +219,7 @@ static int ovl_readlink(struct dentry *d - } - - --static bool ovl_is_private_xattr(const char *name) -+bool ovl_is_private_xattr(const char *name) - { - return strncmp(name, OVL_XATTR_PRE_NAME, OVL_XATTR_PRE_LEN) == 0; - } ---- a/fs/overlayfs/overlayfs.h -+++ b/fs/overlayfs/overlayfs.h -@@ -175,6 +175,7 @@ ssize_t ovl_getxattr(struct dentry *dent - ssize_t ovl_listxattr(struct dentry *dentry, char *list, size_t size); - int ovl_removexattr(struct dentry *dentry, const char *name); - struct inode *ovl_d_select_inode(struct dentry *dentry, unsigned file_flags); -+bool ovl_is_private_xattr(const char *name); - - struct inode *ovl_new_inode(struct super_block *sb, umode_t mode, - struct ovl_entry *oe); |