| 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 | /* | 
| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 27 | * See Documentation/filesystems/Exporting | 
|  | 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 |  | 
| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 48 | #ifdef CONFIG_CIFS_EXPERIMENTAL | 
| 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 */ | 
| Steve French | 7521a3c | 2007-07-11 18:30:34 +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 |  | 
| Steve French | 1ae1bc4 | 2007-02-27 05:16:30 +0000 | [diff] [blame] | 66 | #endif /* EXPERIMENTAL */ | 
| Steve French | 50c2f75 | 2007-07-13 00:33:32 +0000 | [diff] [blame] | 67 |  |