From 167a251ad6678ad26aa3cf27bab677b274374ab6 Mon Sep 17 00:00:00 2001
From: Steve French <sfrench@us.ibm.com>
Date: Wed, 24 Aug 2005 20:03:11 -0700
Subject: [CIFS] Change notify support part 3

Signed-off-by: Steve French <sfrench@us.ibm.com>
---
 fs/cifs/cifsglob.h  | 2 +-
 fs/cifs/cifsproto.h | 3 ++-
 fs/cifs/cifssmb.c   | 7 ++++---
 fs/cifs/fcntl.c     | 8 +++++---
 4 files changed, 12 insertions(+), 8 deletions(-)

(limited to 'fs/cifs')

diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 92fba7609e6..236de07cbda 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -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
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
index 0cc0612eacb..28b1ebbd380 100644
--- a/fs/cifs/cifsproto.h
+++ b/fs/cifs/cifsproto.h
@@ -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,
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index be2a3b9a718..67a6240ff2b 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -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);
diff --git a/fs/cifs/fcntl.c b/fs/cifs/fcntl.c
index d47ce7f49dc..2e5137b7352 100644
--- a/fs/cifs/fcntl.c
+++ b/fs/cifs/fcntl.c
@@ -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));
 		}
 	}
 	
-- 
cgit v1.2.3-70-g09d2