DebugFS : file/directory creation error handling
authorMathieu Desnoyers <compudj@krystal.dyndns.org>
Fri, 24 Nov 2006 18:48:19 +0000 (13:48 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 13 Dec 2006 23:38:45 +0000 (15:38 -0800)
Fix error handling of file and directory creation in DebugFS.

The error path should release the file system because no _remove will be called
for this erroneous creation.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/debugfs/inode.c

index 05d1a9c4fb7647181c744d5580183eec5b9587c2..d6c5fb53c746cc79a8aedbc47cab7e6fe9ada364 100644 (file)
@@ -206,13 +206,15 @@ struct dentry *debugfs_create_file(const char *name, mode_t mode,
 
        pr_debug("debugfs: creating file '%s'\n",name);
 
-       error = simple_pin_fs(&debug_fs_type, &debugfs_mount, &debugfs_mount_count);
+       error = simple_pin_fs(&debug_fs_type, &debugfs_mount,
+                             &debugfs_mount_count);
        if (error)
                goto exit;
 
        error = debugfs_create_by_name(name, mode, parent, &dentry);
        if (error) {
                dentry = NULL;
+               simple_release_fs(&debugfs_mount, &debugfs_mount_count);
                goto exit;
        }