Commit 167a251a authored by Steve French's avatar Steve French
Browse files

[CIFS] Change notify support part 3



Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent abb15b8a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+2 −1
Original line number Diff line number Diff line
@@ -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,
+4 −3
Original line number Diff line number Diff line
@@ -3978,7 +3978,8 @@ CIFSSMBUnixSetPerms(const int xid, struct cifsTconInfo *tcon,

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 * 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);
+5 −3
Original line number Diff line number Diff line
@@ -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));
		}
	}