nfsd4: support putpubfh operation
[safe/jmp/linux-2.6] / fs / cifs / export.c
index 5a08eff..75949d6 100644 (file)
  *   along with this library; if not, write to the Free Software
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
+
  /*
   * See Documentation/filesystems/Exporting
   * and examples in fs/exportfs
+  *
+  * Since cifs is a network file system, an "fsid" must be included for
+  * any nfs exports file entries which refer to cifs paths.  In addition
+  * the cifs mount must be mounted with the "serverino" option (ie use stable
+  * server inode numbers instead of locally generated temporary ones).
+  * Although cifs inodes do not use generation numbers (have generation number
+  * of zero) - the inode number alone should be good enough for simple cases
+  * in which users want to export cifs shares with NFS. The decode and encode
+  * could be improved by using a new routine which expects 64 bit inode numbers
+  * instead of the default 32 bit routines in fs/exportfs
+  *
   */
 
 #include <linux/fs.h>
+#include <linux/exportfs.h>
+#include "cifsglob.h"
+#include "cifs_debug.h"
+#include "cifsfs.h"
+
 #ifdef CONFIG_CIFS_EXPERIMENTAL
 static struct dentry *cifs_get_parent(struct dentry *dentry)
 {
        /* BB need to add code here eventually to enable export via NFSD */
+       cFYI(1, ("get parent for %p", dentry));
        return ERR_PTR(-EACCES);
 }
-struct export_operations cifs_export_ops = {
+
+const struct export_operations cifs_export_ops = {
        .get_parent = cifs_get_parent,
 /*     Following five export operations are unneeded so far and can default:
        .get_dentry =
@@ -47,6 +62,6 @@ struct export_operations cifs_export_ops = {
        .decode_fh =
        .encode_fs =  */
 };
+
 #endif /* EXPERIMENTAL */
+