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 */