diff options
-rw-r--r-- | fs/overlayfs/dir.c | 9 | ||||
-rw-r--r-- | fs/overlayfs/overlayfs.h | 6 | ||||
-rw-r--r-- | 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 4582d5e..76b1edc 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 2bd933a..f183d1d 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 b58710b..c0463fb 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; |