summaryrefslogtreecommitdiff
path: root/fs/cifs/cifssmb.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2005-08-24 17:10:36 -0700
committerSteve French <sfrench@us.ibm.com>2005-08-24 17:10:36 -0700
commitff5dbd9ead0d82466cab8bdbdcbc9666707d328a (patch)
treea0ba466993aa0470fa86d942a6de3bf88fa1d5e1 /fs/cifs/cifssmb.c
parente2a98a7543696306346ba8302a8df6cedf20fdfc (diff)
downloadlwn-ff5dbd9ead0d82466cab8bdbdcbc9666707d328a.tar.gz
lwn-ff5dbd9ead0d82466cab8bdbdcbc9666707d328a.zip
[CIFS] Change notify support part 2
Signed-off-by: Asser Ferno <asser@diku.dk> Signed-off-by: Steve French <sfrench@us.ibm.com> and lightly modified
Diffstat (limited to 'fs/cifs/cifssmb.c')
-rw-r--r--fs/cifs/cifssmb.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 698cdcebca04..36d45b1dffc2 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -4015,6 +4015,22 @@ int CIFSSMBNotify(const int xid, struct cifsTconInfo *tcon,
(struct smb_hdr *) pSMBr, &bytes_returned, -1);
if (rc) {
cFYI(1, ("Error in Notify = %d", rc));
+ } else {
+ /* Add file to outstanding requests */
+ dnotify_req = (struct dir_notify_req *) kmalloc(
+ sizeof(struct dir_notify_req), GFP_KERNEL);
+ dnotify_req->Pid = pSMB->hdr.Pid;
+ dnotify_req->PidHigh = pSMB->hdr.PidHigh;
+ dnotify_req->Mid = pSMB->hdr.Mid;
+ dnotify_req->Tid = pSMB->hdr.Tid;
+ dnotify_req->Uid = pSMB->hdr.Uid;
+ dnotify_req->netfid = netfid;
+ dnotify_req->dentry = dentry;
+ dnotify_req->filter = filter;
+ dnotify_req->multishot = multishot;
+ spin_lock(&GlobalMid_Lock);
+ list_add_tail(&dnotify_req->lhead, &GlobalDnotifyReqList);
+ spin_unlock(&GlobalMid_Lock);
}
cifs_buf_release(pSMB);
return rc;