Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: LGPL-2.1
0002 /*
0003  *
0004  *   Copyright (C) International Business Machines  Corp., 2007
0005  *   Author(s): Steve French (sfrench@us.ibm.com)
0006  *
0007  *   Common Internet FileSystem (CIFS) client
0008  *
0009  *   Operations related to support for exporting files via NFSD
0010  *
0011  */
0012 
0013  /*
0014   * See Documentation/filesystems/nfs/exporting.rst
0015   * and examples in fs/exportfs
0016   *
0017   * Since cifs is a network file system, an "fsid" must be included for
0018   * any nfs exports file entries which refer to cifs paths.  In addition
0019   * the cifs mount must be mounted with the "serverino" option (ie use stable
0020   * server inode numbers instead of locally generated temporary ones).
0021   * Although cifs inodes do not use generation numbers (have generation number
0022   * of zero) - the inode number alone should be good enough for simple cases
0023   * in which users want to export cifs shares with NFS. The decode and encode
0024   * could be improved by using a new routine which expects 64 bit inode numbers
0025   * instead of the default 32 bit routines in fs/exportfs
0026   *
0027   */
0028 
0029 #include <linux/fs.h>
0030 #include <linux/exportfs.h>
0031 #include "cifsglob.h"
0032 #include "cifs_debug.h"
0033 #include "cifsfs.h"
0034 
0035 #ifdef CONFIG_CIFS_NFSD_EXPORT
0036 static struct dentry *cifs_get_parent(struct dentry *dentry)
0037 {
0038     /* BB need to add code here eventually to enable export via NFSD */
0039     cifs_dbg(FYI, "get parent for %p\n", dentry);
0040     return ERR_PTR(-EACCES);
0041 }
0042 
0043 const struct export_operations cifs_export_ops = {
0044     .get_parent = cifs_get_parent,
0045 /*  Following five export operations are unneeded so far and can default:
0046     .get_dentry =
0047     .get_name =
0048     .find_exported_dentry =
0049     .decode_fh =
0050     .encode_fs =  */
0051 };
0052 
0053 #endif /* CONFIG_CIFS_NFSD_EXPORT */
0054