diff options
| -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); |
