| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 1 | /* | 
 | 2 |  *   fs/cifs/export.c | 
 | 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 | 
| Steve French | fb8c4b1 | 2007-07-10 01:16:18 +0000 | [diff] [blame] | 8 |  * | 
| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 9 |  *   Operations related to support for exporting files via NFSD | 
 | 10 |  * | 
 | 11 |  *   This library is free software; you can redistribute it and/or modify | 
 | 12 |  *   it under the terms of the GNU Lesser General Public License as published | 
 | 13 |  *   by the Free Software Foundation; either version 2.1 of the License, or | 
 | 14 |  *   (at your option) any later version. | 
 | 15 |  * | 
 | 16 |  *   This library is distributed in the hope that it will be useful, | 
 | 17 |  *   but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 | 18 |  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See | 
 | 19 |  *   the GNU Lesser General Public License for more details. | 
 | 20 |  * | 
 | 21 |  *   You should have received a copy of the GNU Lesser General Public License | 
 | 22 |  *   along with this library; if not, write to the Free Software | 
 | 23 |  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 
 | 24 |  */ | 
| Steve French | 50c2f75 | 2007-07-13 00:33:32 +0000 | [diff] [blame] | 25 |  | 
| Steve French | fb8c4b1 | 2007-07-10 01:16:18 +0000 | [diff] [blame] | 26 |  /* | 
| J. Bruce Fields | dc7a081 | 2009-10-27 14:41:35 -0400 | [diff] [blame] | 27 |   * See Documentation/filesystems/nfs/Exporting | 
| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 28 |   * and examples in fs/exportfs | 
| Steve French | 7521a3c | 2007-07-11 18:30:34 +0000 | [diff] [blame] | 29 |   * | 
 | 30 |   * Since cifs is a network file system, an "fsid" must be included for | 
 | 31 |   * any nfs exports file entries which refer to cifs paths.  In addition | 
 | 32 |   * the cifs mount must be mounted with the "serverino" option (ie use stable | 
 | 33 |   * server inode numbers instead of locally generated temporary ones). | 
 | 34 |   * Although cifs inodes do not use generation numbers (have generation number | 
 | 35 |   * of zero) - the inode number alone should be good enough for simple cases | 
 | 36 |   * in which users want to export cifs shares with NFS. The decode and encode | 
 | 37 |   * could be improved by using a new routine which expects 64 bit inode numbers | 
 | 38 |   * instead of the default 32 bit routines in fs/exportfs | 
 | 39 |   * | 
| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 40 |   */ | 
 | 41 |  | 
 | 42 | #include <linux/fs.h> | 
| Steve French | 70b315b | 2007-07-19 00:32:25 +0000 | [diff] [blame] | 43 | #include <linux/exportfs.h> | 
| Steve French | 7521a3c | 2007-07-11 18:30:34 +0000 | [diff] [blame] | 44 | #include "cifsglob.h" | 
 | 45 | #include "cifs_debug.h" | 
| Steve French | 297647c | 2007-10-12 04:11:59 +0000 | [diff] [blame] | 46 | #include "cifsfs.h" | 
| Steve French | 7521a3c | 2007-07-11 18:30:34 +0000 | [diff] [blame] | 47 |  | 
| Paul Bolle | f3a6a60 | 2011-10-12 14:14:04 +0200 | [diff] [blame] | 48 | #ifdef CONFIG_CIFS_NFSD_EXPORT | 
| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 49 | static struct dentry *cifs_get_parent(struct dentry *dentry) | 
 | 50 | { | 
| Steve French | fb8c4b1 | 2007-07-10 01:16:18 +0000 | [diff] [blame] | 51 | 	/* BB need to add code here eventually to enable export via NFSD */ | 
| Joe Perches | b6b38f7 | 2010-04-21 03:50:45 +0000 | [diff] [blame] | 52 | 	cFYI(1, "get parent for %p", dentry); | 
| Steve French | fb8c4b1 | 2007-07-10 01:16:18 +0000 | [diff] [blame] | 53 | 	return ERR_PTR(-EACCES); | 
| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 54 | } | 
| Steve French | 50c2f75 | 2007-07-13 00:33:32 +0000 | [diff] [blame] | 55 |  | 
| Christoph Hellwig | 3965516 | 2007-10-21 16:42:17 -0700 | [diff] [blame] | 56 | const struct export_operations cifs_export_ops = { | 
| Steve French | fb8c4b1 | 2007-07-10 01:16:18 +0000 | [diff] [blame] | 57 | 	.get_parent = cifs_get_parent, | 
 | 58 | /*	Following five export operations are unneeded so far and can default: | 
 | 59 | 	.get_dentry = | 
 | 60 | 	.get_name = | 
 | 61 | 	.find_exported_dentry = | 
 | 62 | 	.decode_fh = | 
 | 63 | 	.encode_fs =  */ | 
 | 64 | }; | 
| Steve French | 50c2f75 | 2007-07-13 00:33:32 +0000 | [diff] [blame] | 65 |  | 
| Paul Bolle | f3a6a60 | 2011-10-12 14:14:04 +0200 | [diff] [blame] | 66 | #endif /* CONFIG_CIFS_NFSD_EXPORT */ | 
| Steve French | 50c2f75 | 2007-07-13 00:33:32 +0000 | [diff] [blame] | 67 |  |