Merge tag 'lkdtm-next' of https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux...
[linux-2.6-microblaze.git] / fs / cifs / export.c
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         .get_parent = cifs_get_parent,
45 /*      Following five export operations are unneeded so far and can default:
46         .get_dentry =
47         .get_name =
48         .find_exported_dentry =
49         .decode_fh =
50         .encode_fs =  */
51 };
52
53 #endif /* CONFIG_CIFS_NFSD_EXPORT */
54