Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 124a27fe authored by Ingo Molnar's avatar Ingo Molnar Committed by Steve French
Browse files

[CIFS] Remove calls to to take f_owner.lock



CIFS takes/releases f_owner.lock - why?  It does not change anything in the
fowner state.  Remove this locking.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent cd49b492
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -110,7 +110,6 @@ static inline int cifs_open_inode_helper(struct inode *inode, struct file *file,
			 &pCifsInode->openFileList);
	}
	write_unlock(&GlobalSMBSeslock);
	write_unlock(&file->f_owner.lock);
	if (pCifsInode->clientCanCacheRead) {
		/* we have the inode open somewhere else
		   no need to discard cache data */
@@ -287,7 +286,6 @@ int cifs_open(struct inode *inode, struct file *file)
		goto out;
	}
	pCifsFile = cifs_init_private(file->private_data, inode, file, netfid);
	write_lock(&file->f_owner.lock);
	write_lock(&GlobalSMBSeslock);
	list_add(&pCifsFile->tlist, &pTcon->openFileList);

@@ -298,7 +296,6 @@ int cifs_open(struct inode *inode, struct file *file)
					    &oplock, buf, full_path, xid);
	} else {
		write_unlock(&GlobalSMBSeslock);
		write_unlock(&file->f_owner.lock);
	}

	if (oplock & CIFS_CREATE_ACTION) {           
@@ -477,7 +474,6 @@ int cifs_close(struct inode *inode, struct file *file)
	pTcon = cifs_sb->tcon;
	if (pSMBFile) {
		pSMBFile->closePend = TRUE;
		write_lock(&file->f_owner.lock);
		if (pTcon) {
			/* no sense reconnecting to close a file that is
			   already closed */
@@ -492,23 +488,18 @@ int cifs_close(struct inode *inode, struct file *file)
					the struct would be in each open file,
					but this should give enough time to 
					clear the socket */
					write_unlock(&file->f_owner.lock);
					cERROR(1,("close with pending writes"));
					msleep(timeout);
					write_lock(&file->f_owner.lock);
					timeout *= 4;
				} 
				write_unlock(&file->f_owner.lock);
				rc = CIFSSMBClose(xid, pTcon,
						  pSMBFile->netfid);
				write_lock(&file->f_owner.lock);
			}
		}
		write_lock(&GlobalSMBSeslock);
		list_del(&pSMBFile->flist);
		list_del(&pSMBFile->tlist);
		write_unlock(&GlobalSMBSeslock);
		write_unlock(&file->f_owner.lock);
		kfree(pSMBFile->search_resume_name);
		kfree(file->private_data);
		file->private_data = NULL;