| 1 | // SPDX-License-Identifier: LGPL-2.1 |
| 2 | /* |
| 3 | * |
| 4 | * Copyright (C) International Business Machines Corp., 2007 |
| 5 | * Author(s): Steve French (sfrench@us.ibm.com) |
| 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 | /* BB need to add code here eventually to enable export via NFSD */ |
| 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 /* CONFIG_CIFS_NFSD_EXPORT */ |
| 53 | |
| 54 | |