ovl: fix getcwd() failure after unsuccessful rmdir
[firefly-linux-kernel-4.4.55.git] / fs / overlayfs / dir.c
index 007e61eb2358a46a9d2a19f18829942ed82f0c62..a2b1d7ce3e1aef327c498c181a624ae5874e6c6c 100644 (file)
@@ -618,7 +618,8 @@ static int ovl_remove_upper(struct dentry *dentry, bool is_dir)
         * sole user of this dentry.  Too tricky...  Just unhash for
         * now.
         */
-       d_drop(dentry);
+       if (!err)
+               d_drop(dentry);
        mutex_unlock(&dir->i_mutex);
 
        return err;