aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2010-09-29 19:51:11 -0400
committerSteve French <sfrench@us.ibm.com>2010-10-06 12:12:49 -0400
commit13cfb7334eb6fd0fc06da5589aea1e947791f1d6 (patch)
tree56d884f6a5dbcf8b259247fdad55c9158bd4d865 /fs/cifs/cifsfs.c
parent7ffec372458d163492e56e663a1b3a2d7be0a0a2 (diff)
cifs: have cifsFileInfo hold a reference to a tlink rather than tcon pointer
cifsFileInfo needs a pointer to a tcon, but it doesn't currently hold a reference to it. Change it to keep a pointer to a tcon_link instead and hold a reference to it. That will keep the tcon from being freed until the file is closed. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r--fs/cifs/cifsfs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 898d2a5cfad2..b2fd075dc2e6 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -595,7 +595,8 @@ static int cifs_setlease(struct file *file, long arg, struct file_lock **lease)
595 ((arg == F_WRLCK) && 595 ((arg == F_WRLCK) &&
596 (CIFS_I(inode)->clientCanCacheAll))) 596 (CIFS_I(inode)->clientCanCacheAll)))
597 return generic_setlease(file, arg, lease); 597 return generic_setlease(file, arg, lease);
598 else if (cfile->tcon->local_lease && !CIFS_I(inode)->clientCanCacheRead) 598 else if (tlink_tcon(cfile->tlink)->local_lease &&
599 !CIFS_I(inode)->clientCanCacheRead)
599 /* If the server claims to support oplock on this 600 /* If the server claims to support oplock on this
600 file, then we still need to check oplock even 601 file, then we still need to check oplock even
601 if the local_lease mount option is set, but there 602 if the local_lease mount option is set, but there