|
@@ -2287,12 +2287,12 @@ int
|
|
|
cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
|
|
|
char *mount_data_global, const char *devname)
|
|
|
{
|
|
|
- int rc = 0;
|
|
|
+ int rc;
|
|
|
int xid;
|
|
|
struct smb_vol *volume_info;
|
|
|
- struct cifsSesInfo *pSesInfo = NULL;
|
|
|
- struct cifsTconInfo *tcon = NULL;
|
|
|
- struct TCP_Server_Info *srvTcp = NULL;
|
|
|
+ struct cifsSesInfo *pSesInfo;
|
|
|
+ struct cifsTconInfo *tcon;
|
|
|
+ struct TCP_Server_Info *srvTcp;
|
|
|
char *full_path;
|
|
|
char *mount_data = mount_data_global;
|
|
|
#ifdef CONFIG_CIFS_DFS_UPCALL
|
|
@@ -2301,6 +2301,10 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
|
|
|
int referral_walks_count = 0;
|
|
|
try_mount_again:
|
|
|
#endif
|
|
|
+ rc = 0;
|
|
|
+ tcon = NULL;
|
|
|
+ pSesInfo = NULL;
|
|
|
+ srvTcp = NULL;
|
|
|
full_path = NULL;
|
|
|
|
|
|
xid = GetXid();
|
|
@@ -2597,6 +2601,7 @@ remote_path_check:
|
|
|
|
|
|
cleanup_volume_info(&volume_info);
|
|
|
referral_walks_count++;
|
|
|
+ FreeXid(xid);
|
|
|
goto try_mount_again;
|
|
|
}
|
|
|
#else /* No DFS support, return error on mount */
|