svn commit: linux-cifs-client r38 - in branches/SOC/linux-2.6bk-dnotify/fs/cifs: .

asser at samba.org asser at samba.org
Tue Aug 23 13:13:27 GMT 2005


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;
 }



More information about the samba-cvs mailing list