From e51c119955c495c4df73323c08a5e578c421693e Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Thu, 11 Nov 2010 08:36:56 -0500 Subject: [PATCH] cifs: perform cifs_get_tlink under a spinlock in cifs_sb_tlink Signed-off-by: Jeff Layton --- fs/cifs/connect.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 251a17c..64f63ce 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -3340,10 +3340,13 @@ cifs_sb_tlink(struct cifs_sb_info *cifs_sb) uid_t fsuid = current_fsuid(); struct tcon_link *tlink, *newtlink; - if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MULTIUSER)) - return cifs_get_tlink(cifs_sb_master_tlink(cifs_sb)); - spin_lock(&cifs_sb->tlink_tree_lock); + if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MULTIUSER)) { + tlink = cifs_get_tlink(cifs_sb_master_tlink(cifs_sb)); + spin_unlock(&cifs_sb->tlink_tree_lock); + return tlink; + } + tlink = tlink_rb_search(&cifs_sb->tlink_tree, fsuid); if (tlink) cifs_get_tlink(tlink); -- 1.7.2.3