diff options
author | 2019-11-15 14:12:40 +0200 | |
---|---|---|
committer | 2020-01-22 20:11:41 +0100 | |
commit | 94375f9d5103c2eb2f905381993a2fb70c297364 (patch) | |
tree | ca62fcf2e72a5b32ea218408e9ada833fe25c8e2 /fs/overlayfs/export.c | |
parent | ovl: improving copy-up efficiency for big sparse file (diff) | |
download | linux-94375f9d5103c2eb2f905381993a2fb70c297364.tar.gz linux-94375f9d5103c2eb2f905381993a2fb70c297364.tar.bz2 linux-94375f9d5103c2eb2f905381993a2fb70c297364.zip |
ovl: generalize the lower_layers[] array
Rename lower_layers[] array to layers[], extend its size by one and
initialize layers[0] with upper layer values. Lower layers are now
addressed with index 1..numlower. layers[0] is reserved even with lower
only overlay.
[SzM: replace ofs->numlower with ofs->numlayer, the latter's value is
incremented by one]
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/overlayfs/export.c')
-rw-r--r-- | fs/overlayfs/export.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/overlayfs/export.c b/fs/overlayfs/export.c index 2fe724294aeb..d01f938fcc5c 100644 --- a/fs/overlayfs/export.c +++ b/fs/overlayfs/export.c @@ -424,7 +424,6 @@ static struct dentry *ovl_lookup_real_inode(struct super_block *sb, struct ovl_layer *layer) { struct ovl_fs *ofs = sb->s_fs_info; - struct ovl_layer upper_layer = { .mnt = ofs->upper_mnt }; struct dentry *index = NULL; struct dentry *this = NULL; struct inode *inode; @@ -466,7 +465,7 @@ static struct dentry *ovl_lookup_real_inode(struct super_block *sb, * recursive call walks back from indexed upper to the topmost * connected/hashed upper parent (or up to root). */ - this = ovl_lookup_real(sb, upper, &upper_layer); + this = ovl_lookup_real(sb, upper, &ofs->layers[0]); dput(upper); } @@ -646,8 +645,7 @@ static struct dentry *ovl_get_dentry(struct super_block *sb, struct dentry *index) { struct ovl_fs *ofs = sb->s_fs_info; - struct ovl_layer upper_layer = { .mnt = ofs->upper_mnt }; - struct ovl_layer *layer = upper ? &upper_layer : lowerpath->layer; + struct ovl_layer *layer = upper ? &ofs->layers[0] : lowerpath->layer; struct dentry *real = upper ?: (index ?: lowerpath->dentry); /* |