From 2500d0b5456577942e3d2294b0ddd1e4bf91d8a8 Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Mon, 7 Feb 2011 15:00:27 +0100 Subject: [PATCH] --- yaml --- r: 235481 b: refs/heads/master c: 25d41d8455ec1ee7433e146ee94436dc4195f420 h: refs/heads/master i: 235479: 26a8439c26ef72dec0f6aaac35c80808e615a627 v: v3 --- [refs] | 2 +- trunk/fs/debugfs/inode.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index f8cdd211fe92..07b8d6189d11 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b38360a284f8acab4ae431b387c05a4e19ff4129 +refs/heads/master: 25d41d8455ec1ee7433e146ee94436dc4195f420 diff --git a/trunk/fs/debugfs/inode.c b/trunk/fs/debugfs/inode.c index d38c88fb63ae..e7a7a2f07324 100644 --- a/trunk/fs/debugfs/inode.c +++ b/trunk/fs/debugfs/inode.c @@ -307,7 +307,7 @@ struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent, } EXPORT_SYMBOL_GPL(debugfs_create_symlink); -static void __debugfs_remove(struct dentry *dentry, struct dentry *parent) +static int __debugfs_remove(struct dentry *dentry, struct dentry *parent) { int ret = 0; @@ -330,6 +330,7 @@ static void __debugfs_remove(struct dentry *dentry, struct dentry *parent) dput(dentry); } } + return ret; } /** @@ -348,7 +349,8 @@ static void __debugfs_remove(struct dentry *dentry, struct dentry *parent) void debugfs_remove(struct dentry *dentry) { struct dentry *parent; - + int ret; + if (!dentry) return; @@ -357,9 +359,10 @@ void debugfs_remove(struct dentry *dentry) return; mutex_lock(&parent->d_inode->i_mutex); - __debugfs_remove(dentry, parent); + ret = __debugfs_remove(dentry, parent); mutex_unlock(&parent->d_inode->i_mutex); - simple_release_fs(&debugfs_mount, &debugfs_mount_count); + if (!ret) + simple_release_fs(&debugfs_mount, &debugfs_mount_count); } EXPORT_SYMBOL_GPL(debugfs_remove);