Author: asser
Date: 2005-08-23 13:13:27 +0000 (Tue, 23 Aug 2005)
New Revision: 38

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=linux-cifs-client&rev=38

Log:
Added PidHigh to data structures and function declarations/calls

Modified:
   branches/SOC/linux-2.6bk-dnotify/fs/cifs/cifsglob.h
   branches/SOC/linux-2.6bk-dnotify/fs/cifs/cifsproto.h
   branches/SOC/linux-2.6bk-dnotify/fs/cifs/misc.c


Changeset:
Modified: branches/SOC/linux-2.6bk-dnotify/fs/cifs/cifsglob.h
===================================================================
--- branches/SOC/linux-2.6bk-dnotify/fs/cifs/cifsglob.h 2005-08-23 13:12:32 UTC 
(rev 37)
+++ branches/SOC/linux-2.6bk-dnotify/fs/cifs/cifsglob.h 2005-08-23 13:13:27 UTC 
(rev 38)
@@ -335,6 +335,7 @@
 struct dir_notify_req {
        struct list_head lhead;
        __le16 Pid;
+       __le16 PidHigh;
        __u16 Mid;
        __u16 Tid;
        __u16 Uid;

Modified: branches/SOC/linux-2.6bk-dnotify/fs/cifs/cifsproto.h
===================================================================
--- branches/SOC/linux-2.6bk-dnotify/fs/cifs/cifsproto.h        2005-08-23 
13:12:32 UTC (rev 37)
+++ branches/SOC/linux-2.6bk-dnotify/fs/cifs/cifsproto.h        2005-08-23 
13:13:27 UTC (rev 38)
@@ -267,6 +267,9 @@
                        const int notify_subdirs,const __u16 netfid,
                        __u32 filter, const struct nls_table *nls_codepage,
                        struct dentry *dentry, int multishot);
+extern int CIFSSMBCancel(const int xid, struct cifsTconInfo *tcon,
+                       __u16 Uid, __le16 Pid, __le16 PidHigh,
+                       __u16 Tid, __u16 Mid);
 extern ssize_t CIFSSMBQAllEAs(const int xid, struct cifsTconInfo *tcon,
                        const unsigned char *searchName, char * EAData,
                        size_t bufsize, const struct nls_table *nls_codepage,

Modified: branches/SOC/linux-2.6bk-dnotify/fs/cifs/misc.c
===================================================================
--- branches/SOC/linux-2.6bk-dnotify/fs/cifs/misc.c     2005-08-23 13:12:32 UTC 
(rev 37)
+++ branches/SOC/linux-2.6bk-dnotify/fs/cifs/misc.c     2005-08-23 13:13:27 UTC 
(rev 38)
@@ -409,23 +409,29 @@
                cFYI(1,("pnotify NextEntryOffset:%lx Action:%lx 
FileNameLength:%ld",pnotify->NextEntryOffset,pnotify->Action,pnotify->FileNameLength));
                cFYI(1,("notify err 0x%x",pSMBr->hdr.Status.CifsError));
                if((pSMBr->ByteCount > sizeof(struct file_notify_information)) 
||
-                  (pSMBr->hdr.Status.CifsError)) {
+                  (pSMBr->hdr.Status.CifsError == STATUS_NOTIFY_ENUM_DIR)) {
                    /* Find the request on the req list */
                        spin_lock(&GlobalMid_Lock);
                        list_for_each_safe(tmp, tmp1, &GlobalDnotifyReqList) {
                                dnotify_req = list_entry(tmp, struct 
dir_notify_req, lhead);
 
                                if(dnotify_req->Mid == pSMBr->hdr.Mid && 
-                                  dnotify_req->Pid == pSMBr->hdr.Pid) {
-                                       cFYI(1,("Found pending request with Mid 
%d and Pid %d", dnotify_req->Mid, dnotify_req->Pid));
+                                  dnotify_req->PidHigh == pSMBr->hdr.PidHigh 
&& 
+                                  dnotify_req->Pid == pSMBr->hdr.Pid)
+                               {
                                        list_del(tmp);
-                                       list_add_tail(&dnotify_req->lhead, 
&GlobalDnotifyRsp_Q);
+                                       if(pSMBr->hdr.Status.CifsError == 
NT_STATUS_CANCELLED) {
+                                               cFYI(1,("Request was 
cancelled"));
+                                               kfree(dnotify_req);
+                                       } else {
+                                               
list_add_tail(&dnotify_req->lhead, &GlobalDnotifyRsp_Q);
+                                       }
                                }
                        }
                        spin_unlock(&GlobalMid_Lock);
                        wake_up_process(dnotifyThread);
                        return TRUE;
-               }
+               } /* ASF TODO: NT_STATUS_CANCELLED && file_notify_information */
        }  
        return FALSE;
 }

Reply via email to