From 38e813db61c3951ef76d071ca7d2f46c2e939b80 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Fri, 16 Dec 2016 11:02:55 +0100 Subject: [PATCH] ovl: get rid of PURE type The remainging uses of __OVL_PATH_PURE can be replaced by ovl_dentry_is_opaque(). Signed-off-by: Miklos Szeredi --- fs/overlayfs/dir.c | 9 +++------ fs/overlayfs/overlayfs.h | 6 ++---- fs/overlayfs/super.c | 4 +--- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c index 4582d5efc01e..76b1edccbedd 100644 --- a/fs/overlayfs/dir.c +++ b/fs/overlayfs/dir.c @@ -803,10 +803,7 @@ static int ovl_rename(struct inode *olddir, struct dentry *old, if (!overwrite && OVL_TYPE_MERGE_OR_LOWER(new_type) && new_is_dir) goto out; } else { - if (ovl_dentry_is_opaque(new)) - new_type = __OVL_PATH_UPPER; - else - new_type = __OVL_PATH_UPPER | __OVL_PATH_PURE; + new_type = __OVL_PATH_UPPER; } err = ovl_want_write(old); @@ -826,8 +823,8 @@ static int ovl_rename(struct inode *olddir, struct dentry *old, goto out_drop_write; } - old_opaque = !OVL_TYPE_PURE_UPPER(old_type); - new_opaque = !OVL_TYPE_PURE_UPPER(new_type); + old_opaque = ovl_dentry_is_opaque(old); + new_opaque = ovl_dentry_is_opaque(new); old_cred = ovl_override_creds(old->d_sb); diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h index 2bd933aa622b..f183d1db78bd 100644 --- a/fs/overlayfs/overlayfs.h +++ b/fs/overlayfs/overlayfs.h @@ -12,14 +12,12 @@ struct ovl_entry; enum ovl_path_type { - __OVL_PATH_PURE = (1 << 0), - __OVL_PATH_UPPER = (1 << 1), - __OVL_PATH_MERGE = (1 << 2), + __OVL_PATH_UPPER = (1 << 0), + __OVL_PATH_MERGE = (1 << 1), }; #define OVL_TYPE_UPPER(type) ((type) & __OVL_PATH_UPPER) #define OVL_TYPE_MERGE(type) ((type) & __OVL_PATH_MERGE) -#define OVL_TYPE_PURE_UPPER(type) ((type) & __OVL_PATH_PURE) #define OVL_TYPE_MERGE_OR_LOWER(type) \ (OVL_TYPE_MERGE(type) || !OVL_TYPE_UPPER(type)) diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index b58710b36157..c0463fb80f41 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -80,12 +80,10 @@ enum ovl_path_type ovl_path_type(struct dentry *dentry) /* * Non-dir dentry can hold lower dentry from previous - * location. Its purity depends only on opaque flag. + * location. */ if (oe->numlower && S_ISDIR(dentry->d_inode->i_mode)) type |= __OVL_PATH_MERGE; - else if (!oe->opaque) - type |= __OVL_PATH_PURE; } else { if (oe->numlower > 1) type |= __OVL_PATH_MERGE; -- 2.20.1