diff options
Diffstat (limited to 'fs/debugfs/inode.c')
| -rw-r--r-- | fs/debugfs/inode.c | 26 | 
1 files changed, 7 insertions, 19 deletions
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index 37a8ca7c1222..e7a7a2f07324 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c @@ -13,9 +13,6 @@   *   */ -/* uncomment to get debug messages from the debug filesystem, ah the irony. */ -/* #define DEBUG */ -  #include <linux/module.h>  #include <linux/fs.h>  #include <linux/mount.h> @@ -310,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; @@ -333,6 +330,7 @@ static void __debugfs_remove(struct dentry *dentry, struct dentry *parent)  			dput(dentry);  		}  	} +	return ret;  }  /** @@ -351,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; @@ -360,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); @@ -540,17 +540,5 @@ static int __init debugfs_init(void)  	return retval;  } - -static void __exit debugfs_exit(void) -{ -	debugfs_registered = false; - -	simple_release_fs(&debugfs_mount, &debugfs_mount_count); -	unregister_filesystem(&debug_fs_type); -	kobject_put(debug_kobj); -} -  core_initcall(debugfs_init); -module_exit(debugfs_exit); -MODULE_LICENSE("GPL");  | 
