| 1 | |
| 2 | |
| 3 | *
|
| 4 | * Copyright (C) International Business Machines Corp., 2007
|
| 5 | * Author(s): Steve French ([email protected])
|
| 6 | *
|
| 7 | * Common Internet FileSystem (CIFS) client
|
| 8 | *
|
| 9 | * Operations related to support for exporting files via NFSD
|
| 10 | *
|
| 11 |
|
| 12 |
|
| 13 | |
| 14 | * See Documentation/filesystems/nfs/exporting.rst
|
| 15 | * and examples in fs/exportfs
|
| 16 | *
|
| 17 | * Since cifs is a network file system, an "fsid" must be included for
|
| 18 | * any nfs exports file entries which refer to cifs paths. In addition
|
| 19 | * the cifs mount must be mounted with the "serverino" option (ie use stable
|
| 20 | * server inode numbers instead of locally generated temporary ones).
|
| 21 | * Although cifs inodes do not use generation numbers (have generation number
|
| 22 | * of zero) - the inode number alone should be good enough for simple cases
|
| 23 | * in which users want to export cifs shares with NFS. The decode and encode
|
| 24 | * could be improved by using a new routine which expects 64 bit inode numbers
|
| 25 | * instead of the default 32 bit routines in fs/exportfs
|
| 26 | *
|
| 27 |
|
| 28 |
|
| 29 | #include <linux/fs.h>
|
| 30 | #include <linux/exportfs.h>
|
| 31 | #include "cifsglob.h"
|
| 32 | #include "cifs_debug.h"
|
| 33 | #include "cifsfs.h"
|
| 34 |
|
| 35 | #ifdef CONFIG_CIFS_NFSD_EXPORT
|
| 36 | static struct dentry *cifs_get_parent(struct dentry *dentry)
|
| 37 | {
|
| 38 |
|
| 39 | cifs_dbg(FYI, "get parent for %p\n", dentry);
|
| 40 | return ERR_PTR(-EACCES);
|
| 41 | }
|
| 42 |
|
| 43 | const struct export_operations cifs_export_ops = {
|
| 44 | .encode_fh = generic_encode_ino32_fh,
|
| 45 | .get_parent = cifs_get_parent,
|
| 46 | |
| 47 | * Following export operations are mandatory for NFS export support:
|
| 48 | * .fh_to_dentry =
|
| 49 |
|
| 50 | };
|
| 51 |
|
| 52 | #endif
|
| 53 |
|