diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2016-09-06 21:32:47 +0200 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2016-09-06 21:37:49 +0200 |
commit | 42f559ed70897a7b74dd3e6293b42e6d2e511eaa (patch) | |
tree | 93366019d5e01b991171766568430107b16d3728 /target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch | |
parent | 81dfbfb069c3c8f3e5499f55b02b1f320208707d (diff) | |
download | mtk-20170518-42f559ed70897a7b74dd3e6293b42e6d2e511eaa.zip mtk-20170518-42f559ed70897a7b74dd3e6293b42e6d2e511eaa.tar.gz mtk-20170518-42f559ed70897a7b74dd3e6293b42e6d2e511eaa.tar.bz2 |
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.patch | 72 |
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 0000000..79140b9 --- /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); + } |