]> err.no Git - linux-2.6/commitdiff
[CIFS] Change notify support part 3
authorSteve French <sfrench@us.ibm.com>
Thu, 25 Aug 2005 03:03:11 +0000 (20:03 -0700)
committerSteve French <sfrench@us.ibm.com>
Thu, 25 Aug 2005 03:03:11 +0000 (20:03 -0700)
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/cifsglob.h
fs/cifs/cifsproto.h
fs/cifs/cifssmb.c
fs/cifs/fcntl.c

index 92fba7609e67bcba4c52f6d99d113dd7086e0966..236de07cbda641d1cfdad4f4e6b3e16f079816ba 100644 (file)
@@ -402,7 +402,7 @@ struct dir_notify_req {
        __u16 netfid;
        __u32 filter; /* CompletionFilter (for multishot) */
        int multishot;
-       struct dentry * dentry;
+       struct file * dentry;
 };
 
 #define   MID_FREE 0
index 0cc0612eacb468ecc55005874be459a3adcde29e..28b1ebbd380156796d9397375a75e4fb9fa50e97 100644 (file)
@@ -275,7 +275,8 @@ extern int CIFSSMBCopy(int xid,
                        int remap_special_chars);
 extern int CIFSSMBNotify(const int xid, struct cifsTconInfo *tcon, 
                        const int notify_subdirs,const __u16 netfid,
-                       __u32 filter, const struct nls_table *nls_codepage);
+                       __u32 filter, struct file * file, int multishot, 
+                       const struct nls_table *nls_codepage);
 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,
index be2a3b9a718c383d4b9c2e620932eea03d06c65f..67a6240ff2ba8dc588dff9701498c242f412e7ae 100644 (file)
@@ -3977,8 +3977,9 @@ setPermsRetry:
 }
 
 int CIFSSMBNotify(const int xid, struct cifsTconInfo *tcon, 
-                       const int notify_subdirs, const __u16 netfid,
-                       __u32 filter, const struct nls_table *nls_codepage)
+                 const int notify_subdirs, const __u16 netfid,
+                 __u32 filter, struct file * pfile, int multishot, 
+                 const struct nls_table *nls_codepage)
 {
        int rc = 0;
        struct smb_com_transaction_change_notify_req * pSMB = NULL;
@@ -4026,7 +4027,7 @@ int CIFSSMBNotify(const int xid, struct cifsTconInfo *tcon,
                dnotify_req->Tid = pSMB->hdr.Tid;
                dnotify_req->Uid = pSMB->hdr.Uid;
                dnotify_req->netfid = netfid;
-               dnotify_req->dentry = dentry;
+               dnotify_req->pfile = pfile;
                dnotify_req->filter = filter;
                dnotify_req->multishot = multishot;
                spin_lock(&GlobalMid_Lock);
index d47ce7f49dc313a60102fc19d7e02f36adbec247..2e5137b7352a4852c8e5888d1eb8ea65a3794450 100644 (file)
@@ -100,8 +100,10 @@ int cifs_dir_notify(struct file * file, unsigned long arg)
                } else {
                        filter = convert_to_cifs_notify_flags(arg);
                        if(filter != 0) {
-                               rc = CIFSSMBNotify(xid, pTcon, 0 /* no subdirs */, netfid, 
-                                       filter, cifs_sb->local_nls);
+                               rc = CIFSSMBNotify(xid, pTcon, 
+                                       0 /* no subdirs */, netfid,
+                                       filter, file, arg & DN_MULTISHOT,
+                                       cifs_sb->local_nls);
                        } else {
                                rc = -EINVAL;
                        }
@@ -109,7 +111,7 @@ int cifs_dir_notify(struct file * file, unsigned long arg)
                        it would close automatically but may be a way
                        to do it easily when inode freed or when
                        notify info is cleared/changed */
-            cERROR(1,("notify rc %d",rc));
+                       cFYI(1,("notify rc %d",rc));
                }
        }