diff options
-rw-r--r-- | fs/overlayfs/dir.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c index 8f95c213c0c6..ddda948109d3 100644 --- a/fs/overlayfs/dir.c +++ b/fs/overlayfs/dir.c @@ -696,8 +696,12 @@ static int ovl_do_remove(struct dentry *dentry, bool is_dir) else err = ovl_remove_and_whiteout(dentry, is_dir); revert_creds(old_cred); - if (!err && !is_dir) - drop_nlink(dentry->d_inode); + if (!err) { + if (is_dir) + clear_nlink(dentry->d_inode); + else + drop_nlink(dentry->d_inode); + } out_drop_write: ovl_drop_write(dentry); out: |