diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/debugfs/inode.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index 554f4a9dfaf8..c692487346ea 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c | |||
@@ -286,6 +286,7 @@ void debugfs_remove(struct dentry *dentry) | |||
286 | mutex_lock(&parent->d_inode->i_mutex); | 286 | mutex_lock(&parent->d_inode->i_mutex); |
287 | if (debugfs_positive(dentry)) { | 287 | if (debugfs_positive(dentry)) { |
288 | if (dentry->d_inode) { | 288 | if (dentry->d_inode) { |
289 | dget(dentry); | ||
289 | if (S_ISDIR(dentry->d_inode->i_mode)) { | 290 | if (S_ISDIR(dentry->d_inode->i_mode)) { |
290 | ret = simple_rmdir(parent->d_inode, dentry); | 291 | ret = simple_rmdir(parent->d_inode, dentry); |
291 | if (ret) | 292 | if (ret) |
@@ -295,6 +296,9 @@ void debugfs_remove(struct dentry *dentry) | |||
295 | dentry->d_name.name); | 296 | dentry->d_name.name); |
296 | } else | 297 | } else |
297 | simple_unlink(parent->d_inode, dentry); | 298 | simple_unlink(parent->d_inode, dentry); |
299 | if (!ret) | ||
300 | d_delete(dentry); | ||
301 | dput(dentry); | ||
298 | } | 302 | } |
299 | } | 303 | } |
300 | mutex_unlock(&parent->d_inode->i_mutex); | 304 | mutex_unlock(&parent->d_inode->i_mutex); |