aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2016-09-06 21:32:47 +0200
committerRafał Miłecki <rafal@milecki.pl>2016-09-06 21:37:49 +0200
commit42f559ed70897a7b74dd3e6293b42e6d2e511eaa (patch)
tree93366019d5e01b991171766568430107b16d3728 /target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch
parent81dfbfb069c3c8f3e5499f55b02b1f320208707d (diff)
downloadupstream-42f559ed70897a7b74dd3e6293b42e6d2e511eaa.tar.gz
upstream-42f559ed70897a7b74dd3e6293b42e6d2e511eaa.tar.bz2
upstream-42f559ed70897a7b74dd3e6293b42e6d2e511eaa.zip
kernel: backport upstream overlayfs fixes
First two patches weren't marked for stable but are dependencies for laters ones. The rest of patches was marked for stable but most likely will be backported to 4.5+ only so we need to get them on our own. An important fix is eea2fb4851e9d ("ovl: proper cleanup of workdir") as it allows mounting overlayfs with dirty workdir, e.g. after power cut. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch')
-rw-r--r--target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch b/target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch
new file mode 100644
index 0000000000..79140b9008
--- /dev/null
+++ b/target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch
@@ -0,0 +1,72 @@
+From 56656e960b555cb98bc414382566dcb59aae99a2 Mon Sep 17 00:00:00 2001
+From: Miklos Szeredi <mszeredi@redhat.com>
+Date: Mon, 21 Mar 2016 17:31:46 +0100
+Subject: [PATCH] ovl: rename is_merge to is_lowest
+
+The 'is_merge' is an historical naming from when only a single lower layer
+could exist. With the introduction of multiple lower layers the meaning of
+this flag was changed to mean only the "lowest layer" (while all lower
+layers were being merged).
+
+So now 'is_merge' is inaccurate and hence renaming to 'is_lowest'
+
+Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
+---
+ fs/overlayfs/readdir.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+--- a/fs/overlayfs/readdir.c
++++ b/fs/overlayfs/readdir.c
+@@ -36,7 +36,7 @@ struct ovl_dir_cache {
+
+ struct ovl_readdir_data {
+ struct dir_context ctx;
+- bool is_merge;
++ bool is_lowest;
+ struct rb_root root;
+ struct list_head *list;
+ struct list_head middle;
+@@ -139,9 +139,9 @@ static int ovl_cache_entry_add_rb(struct
+ return 0;
+ }
+
+-static int ovl_fill_lower(struct ovl_readdir_data *rdd,
+- const char *name, int namelen,
+- loff_t offset, u64 ino, unsigned int d_type)
++static int ovl_fill_lowest(struct ovl_readdir_data *rdd,
++ const char *name, int namelen,
++ loff_t offset, u64 ino, unsigned int d_type)
+ {
+ struct ovl_cache_entry *p;
+
+@@ -193,10 +193,10 @@ static int ovl_fill_merge(struct dir_con
+ container_of(ctx, struct ovl_readdir_data, ctx);
+
+ rdd->count++;
+- if (!rdd->is_merge)
++ if (!rdd->is_lowest)
+ return ovl_cache_entry_add_rb(rdd, name, namelen, ino, d_type);
+ else
+- return ovl_fill_lower(rdd, name, namelen, offset, ino, d_type);
++ return ovl_fill_lowest(rdd, name, namelen, offset, ino, d_type);
+ }
+
+ static int ovl_check_whiteouts(struct dentry *dir, struct ovl_readdir_data *rdd)
+@@ -289,7 +289,7 @@ static int ovl_dir_read_merged(struct de
+ .ctx.actor = ovl_fill_merge,
+ .list = list,
+ .root = RB_ROOT,
+- .is_merge = false,
++ .is_lowest = false,
+ };
+ int idx, next;
+
+@@ -306,7 +306,7 @@ static int ovl_dir_read_merged(struct de
+ * allows offsets to be reasonably constant
+ */
+ list_add(&rdd.middle, rdd.list);
+- rdd.is_merge = true;
++ rdd.is_lowest = true;
+ err = ovl_dir_read(&realpath, &rdd);
+ list_del(&rdd.middle);
+ }