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