4 * vfs operations that deal with the file control API
6 * Copyright (C) International Business Machines Corp., 2003,2004
7 * Author(s): Steve French (sfrench@us.ibm.com)
9 * This library is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as published
11 * by the Free Software Foundation; either version 2.1 of the License, or
12 * (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
17 * the GNU Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with this library; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 #include <linux/stat.h>
25 #include <linux/fcntl.h>
27 #include "cifsproto.h"
28 #include "cifs_unicode.h"
29 #include "cifs_debug.h"
31 int cifs_directory_notify(unsigned long arg, struct file * file)
35 struct cifs_sb_info *cifs_sb;
36 struct cifsTconInfo *pTcon;
37 char *full_path = NULL;
40 cifs_sb = CIFS_SB(file->f_dentry->d_sb);
41 pTcon = cifs_sb->tcon;
42 full_path = build_path_from_dentry(file->f_dentry);
43 cFYI(1,("cifs dir notify on file %s",full_path));
50 long cifs_fcntl(int file_desc, unsigned int command, unsigned long arg,
53 /* Few few file control functions need to be specially mapped. So far
55 F_NOTIFY (for directory change notification)
59 need to be mapped here. The others either already are mapped downstream
60 or do not need to go to the server (client only sideeffects):
76 cFYI(1,("cifs_fcntl: command %d with arg %lx",command,arg)); /* BB removeme BB */
80 /* let the local call have a chance to fail first */
81 rc = generic_file_fcntl(file_desc,command,arg,file);
85 /* local call succeeded try to do remote notify to
86 pick up changes from other clients to server file */
87 cifs_directory_notify(arg, file);
88 /* BB add case to long and return rc from above */
95 return generic_file_fcntl(file_desc,command,arg,file);