diff options
author | Mathieu Desnoyers <compudj@krystal.dyndns.org> | 2006-11-24 13:48:19 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-12-13 18:38:45 -0500 |
commit | 63223a0654c2a473ae64835819b87826cb7415ee (patch) | |
tree | 8c8d74c7bb4cd9b9f538d4701d92b2e6a3cca496 | |
parent | bafb232ec42aa6862798236009e8e5233d05ab36 (diff) |
DebugFS : file/directory creation error handling
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>
-rw-r--r-- | fs/debugfs/inode.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index 05d1a9c4fb76..d6c5fb53c746 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c | |||
@@ -206,13 +206,15 @@ struct dentry *debugfs_create_file(const char *name, mode_t mode, | |||
206 | 206 | ||
207 | pr_debug("debugfs: creating file '%s'\n",name); | 207 | pr_debug("debugfs: creating file '%s'\n",name); |
208 | 208 | ||
209 | error = simple_pin_fs(&debug_fs_type, &debugfs_mount, &debugfs_mount_count); | 209 | error = simple_pin_fs(&debug_fs_type, &debugfs_mount, |
210 | &debugfs_mount_count); | ||
210 | if (error) | 211 | if (error) |
211 | goto exit; | 212 | goto exit; |
212 | 213 | ||
213 | error = debugfs_create_by_name(name, mode, parent, &dentry); | 214 | error = debugfs_create_by_name(name, mode, parent, &dentry); |
214 | if (error) { | 215 | if (error) { |
215 | dentry = NULL; | 216 | dentry = NULL; |
217 | simple_release_fs(&debugfs_mount, &debugfs_mount_count); | ||
216 | goto exit; | 218 | goto exit; |
217 | } | 219 | } |
218 | 220 | ||