aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/dir.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2010-08-05 13:58:38 -0400
committerSteve French <sfrench@us.ibm.com>2010-08-16 20:34:48 +0000
commit232341ba7fa15115d40f6aa0f8dd14e96e3ad375 (patch)
tree1e9c2232b754d99616e5f7770d4c637438411455 /fs/cifs/dir.c
parent5d9ac7fd32f600f9451ea58abdb07f7ed42e921d (diff)
downloadlinux-232341ba7fa15115d40f6aa0f8dd14e96e3ad375.tar.gz
cifs: consolidate error handling in several functions
cifs has a lot of complicated functions that have to clean up things on error, but some of them don't have all of the cleanup code well-consolidated. Clean up and consolidate error handling in several functions. This is in preparation of later patches that will need to put references to the tcon link container. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/dir.c')
-rw-r--r--fs/cifs/dir.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index f17d50047f07c3..f9ed0751cc12cb 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -305,8 +305,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
full_path = build_path_from_dentry(direntry);
if (full_path == NULL) {
rc = -ENOMEM;
- FreeXid(xid);
- return rc;
+ goto cifs_create_out;
}
if (oplockEnabled)
@@ -365,9 +364,8 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
buf = kmalloc(sizeof(FILE_ALL_INFO), GFP_KERNEL);
if (buf == NULL) {
- kfree(full_path);
- FreeXid(xid);
- return -ENOMEM;
+ rc = -ENOMEM;
+ goto cifs_create_out;
}
/*