]> Pileus Git - ~andy/linux/blobdiff - fs/cifs/cifsfs.c
Merge with /pub/scm/linux/kernel/git/sfrench/cifs-2.6.git/
[~andy/linux] / fs / cifs / cifsfs.c
index fd5eae37f2a84de197bd3317a0bb160ae54be5fc..877095a1192ad8e13b7bffe6e041ab578346ec46 100644 (file)
@@ -408,21 +408,24 @@ static struct quotactl_ops cifs_quotactl_ops = {
 static void cifs_umount_begin(struct super_block * sblock)
 {
        struct cifs_sb_info *cifs_sb;
+       struct cifsTconInfo * tcon;
 
-       cifs_sb = CIFS_SB(sb);
+       cifs_sb = CIFS_SB(sblock);
        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 */
 
@@ -813,7 +816,7 @@ static int cifs_oplock_thread(void * dummyarg)
 
        oplockThread = current;
        do {
-               if(try_to_freeze()) 
+               if (try_to_freeze()) 
                        continue;
                
                spin_lock(&GlobalMid_Lock);
@@ -898,6 +901,10 @@ init_cifs(void)
        INIT_LIST_HEAD(&GlobalSMBSessionList);
        INIT_LIST_HEAD(&GlobalTreeConnectionList);
        INIT_LIST_HEAD(&GlobalOplock_Q);
+#ifdef CONFIG_CIFS_EXPERIMENTAL
+       INIT_LIST_HEAD(&GlobalDnotifyReqList);
+       INIT_LIST_HEAD(&GlobalDnotifyRsp_Q);
+#endif 
 /*
  *  Initialize Global counters
  */