static void cifs_umount_begin(struct super_block * sblock)
{
struct cifs_sb_info *cifs_sb;
+ struct cifsTconInfo * tcon;
cifs_sb = CIFS_SB(sb);
if(cifs_sb == NULL)
- return -EIO;
- if(cifs_sb->tcon == NULL)
- return -EIO;
+ return;
+
+ tcon = cifs_sb->tcon;
+ if(tcon == NULL)
+ return;
down(&tcon->tconSem);
if (atomic_read(&tcon->useCount) == 1)
tcon->tidStatus = CifsExiting;
up(&tcon->tconSem);
- if((cifs->sb->tcon->ses) && (cifs_sb->tcon->ses->server))
+ if(tcon->ses && tcon->ses->server)
{
cERROR(1,("wake up tasks now - umount begin not complete"));
- wake_up_all(&server->request_q);
+ wake_up_all(&tcon->ses->server->request_q);
}
/* BB FIXME - finish add checks for tidStatus BB */