Loading fs/cifs/CHANGES +4 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,10 @@ Version 1.45 ------------ Do not time out lockw calls when using posix extensions. Do not time out requests if server still responding reasonably fast on requests on other threads on requests on other threads. Improve POSIX locking emulation, (lock cancel now works, and unlock of merged range works even to Windows servers now). Fix oops on mount to lanman servers (win9x, os/2 etc.) when null password. Version 1.44 ------------ Loading fs/cifs/connect.c +8 −6 Original line number Diff line number Diff line Loading @@ -1271,7 +1271,7 @@ find_unc(__be32 new_target_ip_addr, char *uncName, char *userName) read_lock(&GlobalSMBSeslock); list_for_each(tmp, &GlobalTreeConnectionList) { cFYI(1, ("Next tcon - ")); cFYI(1, ("Next tcon")); tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList); if (tcon->ses) { if (tcon->ses->server) { Loading @@ -1281,23 +1281,25 @@ find_unc(__be32 new_target_ip_addr, char *uncName, char *userName) s_addr, new_target_ip_addr)); if (tcon->ses->server->addr.sockAddr.sin_addr. s_addr == new_target_ip_addr) { /* BB lock tcon and server and tcp session and increment use count here? */ /* BB lock tcon, server and tcp session and increment use count here? */ /* found a match on the TCP session */ /* BB check if reconnection needed */ cFYI(1,("Matched ip, old UNC: %s == new: %s ?", cFYI(1,("IP match, old UNC: %s new: %s", tcon->treeName, uncName)); if (strncmp (tcon->treeName, uncName, MAX_TREE_SIZE) == 0) { cFYI(1, ("Matched UNC, old user: %s == new: %s ?", ("and old usr: %s new: %s", tcon->treeName, uncName)); if (strncmp (tcon->ses->userName, userName, MAX_USERNAME_SIZE) == 0) { read_unlock(&GlobalSMBSeslock); return tcon;/* also matched user (smb session)*/ /* matched smb session (user name */ return tcon; } } } Loading fs/cifs/dir.c +4 −0 Original line number Diff line number Diff line Loading @@ -267,6 +267,10 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, pCifsFile->invalidHandle = FALSE; pCifsFile->closePend = FALSE; init_MUTEX(&pCifsFile->fh_sem); init_MUTEX(&pCifsFile->lock_sem); INIT_LIST_HEAD(&pCifsFile->llist); atomic_set(&pCifsFile->wrtPending,0); /* set the following in open now pCifsFile->pfile = file; */ write_lock(&GlobalSMBSeslock); Loading Loading
fs/cifs/CHANGES +4 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,10 @@ Version 1.45 ------------ Do not time out lockw calls when using posix extensions. Do not time out requests if server still responding reasonably fast on requests on other threads on requests on other threads. Improve POSIX locking emulation, (lock cancel now works, and unlock of merged range works even to Windows servers now). Fix oops on mount to lanman servers (win9x, os/2 etc.) when null password. Version 1.44 ------------ Loading
fs/cifs/connect.c +8 −6 Original line number Diff line number Diff line Loading @@ -1271,7 +1271,7 @@ find_unc(__be32 new_target_ip_addr, char *uncName, char *userName) read_lock(&GlobalSMBSeslock); list_for_each(tmp, &GlobalTreeConnectionList) { cFYI(1, ("Next tcon - ")); cFYI(1, ("Next tcon")); tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList); if (tcon->ses) { if (tcon->ses->server) { Loading @@ -1281,23 +1281,25 @@ find_unc(__be32 new_target_ip_addr, char *uncName, char *userName) s_addr, new_target_ip_addr)); if (tcon->ses->server->addr.sockAddr.sin_addr. s_addr == new_target_ip_addr) { /* BB lock tcon and server and tcp session and increment use count here? */ /* BB lock tcon, server and tcp session and increment use count here? */ /* found a match on the TCP session */ /* BB check if reconnection needed */ cFYI(1,("Matched ip, old UNC: %s == new: %s ?", cFYI(1,("IP match, old UNC: %s new: %s", tcon->treeName, uncName)); if (strncmp (tcon->treeName, uncName, MAX_TREE_SIZE) == 0) { cFYI(1, ("Matched UNC, old user: %s == new: %s ?", ("and old usr: %s new: %s", tcon->treeName, uncName)); if (strncmp (tcon->ses->userName, userName, MAX_USERNAME_SIZE) == 0) { read_unlock(&GlobalSMBSeslock); return tcon;/* also matched user (smb session)*/ /* matched smb session (user name */ return tcon; } } } Loading
fs/cifs/dir.c +4 −0 Original line number Diff line number Diff line Loading @@ -267,6 +267,10 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, pCifsFile->invalidHandle = FALSE; pCifsFile->closePend = FALSE; init_MUTEX(&pCifsFile->fh_sem); init_MUTEX(&pCifsFile->lock_sem); INIT_LIST_HEAD(&pCifsFile->llist); atomic_set(&pCifsFile->wrtPending,0); /* set the following in open now pCifsFile->pfile = file; */ write_lock(&GlobalSMBSeslock); Loading