ovl: dont replace opaque dir
authorMiklos Szeredi <mszeredi@suse.cz>
Fri, 12 Dec 2014 23:59:43 +0000 (00:59 +0100)
committerMiklos Szeredi <mszeredi@suse.cz>
Fri, 12 Dec 2014 23:59:43 +0000 (00:59 +0100)
When removing an empty opaque directory, then it makes no sense to replace
it with an exact replica of itself before removal.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
fs/overlayfs/dir.c

index ab50bd111feb899bb97e1ad0fbc8ed40d6e97f12..dcae3ac5aa769b1d9ead7414ef2246c3c533c731 100644 (file)
@@ -506,7 +506,7 @@ static int ovl_remove_and_whiteout(struct dentry *dentry, bool is_dir)
        struct dentry *opaquedir = NULL;
        int err;
 
-       if (is_dir) {
+       if (is_dir && OVL_TYPE_MERGE_OR_LOWER(ovl_path_type(dentry))) {
                opaquedir = ovl_check_empty_and_clear(dentry);
                err = PTR_ERR(opaquedir);
                if (IS_ERR(opaquedir))