|
@@ -881,8 +881,10 @@ struct inode *cifs_root_iget(struct super_block *sb, unsigned long ino)
|
|
|
rc = cifs_get_inode_info(&inode, full_path, NULL, sb,
|
|
|
xid, NULL);
|
|
|
|
|
|
- if (!inode)
|
|
|
- return ERR_PTR(rc);
|
|
|
+ if (!inode) {
|
|
|
+ inode = ERR_PTR(rc);
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
|
|
|
#ifdef CONFIG_CIFS_FSCACHE
|
|
|
/* populate tcon->resource_id */
|
|
@@ -898,13 +900,11 @@ struct inode *cifs_root_iget(struct super_block *sb, unsigned long ino)
|
|
|
inode->i_uid = cifs_sb->mnt_uid;
|
|
|
inode->i_gid = cifs_sb->mnt_gid;
|
|
|
} else if (rc) {
|
|
|
- kfree(full_path);
|
|
|
- _FreeXid(xid);
|
|
|
iget_failed(inode);
|
|
|
- return ERR_PTR(rc);
|
|
|
+ inode = ERR_PTR(rc);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+out:
|
|
|
kfree(full_path);
|
|
|
/* can not call macro FreeXid here since in a void func
|
|
|
* TODO: This is no longer true
|