linux/fs/cifs/export.c
<<
>>
Prefs
   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
  36static 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
  43const 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
  55