diff options
Diffstat (limited to 'fs/cifs/export.c')
-rw-r--r-- | fs/cifs/export.c | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/fs/cifs/export.c b/fs/cifs/export.c index 96df1d51fd..893fd0aebf 100644 --- a/fs/cifs/export.c +++ b/fs/cifs/export.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * Author(s): Steve French (sfrench@us.ibm.com) | 5 | * Author(s): Steve French (sfrench@us.ibm.com) |
6 | * | 6 | * |
7 | * Common Internet FileSystem (CIFS) client | 7 | * Common Internet FileSystem (CIFS) client |
8 | * | 8 | * |
9 | * Operations related to support for exporting files via NFSD | 9 | * Operations related to support for exporting files via NFSD |
10 | * | 10 | * |
11 | * This library is free software; you can redistribute it and/or modify | 11 | * This library is free software; you can redistribute it and/or modify |
@@ -22,32 +22,45 @@ | |||
22 | * along with this library; if not, write to the Free Software | 22 | * along with this library; if not, write to the Free Software |
23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
24 | */ | 24 | */ |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * See Documentation/filesystems/Exporting | 27 | * See Documentation/filesystems/Exporting |
28 | * and examples in fs/exportfs | 28 | * and examples in fs/exportfs |
29 | * | ||
30 | * Since cifs is a network file system, an "fsid" must be included for | ||
31 | * any nfs exports file entries which refer to cifs paths. In addition | ||
32 | * the cifs mount must be mounted with the "serverino" option (ie use stable | ||
33 | * server inode numbers instead of locally generated temporary ones). | ||
34 | * Although cifs inodes do not use generation numbers (have generation number | ||
35 | * of zero) - the inode number alone should be good enough for simple cases | ||
36 | * in which users want to export cifs shares with NFS. The decode and encode | ||
37 | * could be improved by using a new routine which expects 64 bit inode numbers | ||
38 | * instead of the default 32 bit routines in fs/exportfs | ||
39 | * | ||
29 | */ | 40 | */ |
30 | 41 | ||
31 | #include <linux/fs.h> | 42 | #include <linux/fs.h> |
32 | #include <linux/exportfs.h> | 43 | #include <linux/exportfs.h> |
33 | 44 | #include "cifsglob.h" | |
45 | #include "cifs_debug.h" | ||
46 | |||
34 | #ifdef CONFIG_CIFS_EXPERIMENTAL | 47 | #ifdef CONFIG_CIFS_EXPERIMENTAL |
35 | |||
36 | static struct dentry *cifs_get_parent(struct dentry *dentry) | 48 | static struct dentry *cifs_get_parent(struct dentry *dentry) |
37 | { | 49 | { |
38 | /* BB need to add code here eventually to enable export via NFSD */ | 50 | /* BB need to add code here eventually to enable export via NFSD */ |
39 | return ERR_PTR(-EACCES); | 51 | cFYI(1, ("get parent for %p", dentry)); |
52 | return ERR_PTR(-EACCES); | ||
40 | } | 53 | } |
41 | 54 | ||
42 | struct export_operations cifs_export_ops = { | 55 | struct export_operations cifs_export_ops = { |
43 | .get_parent = cifs_get_parent, | 56 | .get_parent = cifs_get_parent, |
44 | /* Following five export operations are unneeded so far and can default */ | 57 | /* Following five export operations are unneeded so far and can default: |
45 | /* .get_dentry = | 58 | .get_dentry = |
46 | .get_name = | 59 | .get_name = |
47 | .find_exported_dentry = | 60 | .find_exported_dentry = |
48 | .decode_fh = | 61 | .decode_fh = |
49 | .encode_fs = */ | 62 | .encode_fs = */ |
50 | }; | 63 | }; |
51 | 64 | ||
52 | #endif /* EXPERIMENTAL */ | 65 | #endif /* EXPERIMENTAL */ |
53 | 66 | ||