]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/nfsd/export.c
ipg: fix queue stop condition in the xmit handler
[linux-2.6-omap-h63xx.git] / fs / nfsd / export.c
index 2d295dda4c1d63c774970f7baa76403658ccae4f..66d0aeb32a47e5f4385e68c1947a8d8c1ab3a7e5 100644 (file)
@@ -386,15 +386,13 @@ static int check_export(struct inode *inode, int flags, unsigned char *uuid)
                dprintk("exp_export: export of non-dev fs without fsid\n");
                return -EINVAL;
        }
-       if (!inode->i_sb->s_export_op) {
+
+       if (!inode->i_sb->s_export_op ||
+           !inode->i_sb->s_export_op->fh_to_dentry) {
                dprintk("exp_export: export of invalid fs type.\n");
                return -EINVAL;
        }
 
-       /* Ok, we can export it */;
-       if (!inode->i_sb->s_export_op->find_exported_dentry)
-               inode->i_sb->s_export_op->find_exported_dentry =
-                       find_exported_dentry;
        return 0;
 
 }
@@ -564,9 +562,10 @@ static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen)
 
        /* flags */
        err = get_int(&mesg, &an_int);
-       if (err == -ENOENT)
+       if (err == -ENOENT) {
+               err = 0;
                set_bit(CACHE_NEGATIVE, &exp.h.flags);
-       else {
+       else {
                if (err || an_int < 0) goto out;        
                exp.ex_flags= an_int;
        
@@ -860,9 +859,9 @@ exp_get_fsid_key(svc_client *clp, int fsid)
        return exp_find_key(clp, FSID_NUM, fsidv, NULL);
 }
 
-svc_export *
-exp_get_by_name(svc_client *clp, struct vfsmount *mnt, struct dentry *dentry,
-               struct cache_req *reqp)
+static svc_export *exp_get_by_name(svc_client *clp, struct vfsmount *mnt,
+                                  struct dentry *dentry,
+                                  struct cache_req *reqp)
 {
        struct svc_export *exp, key;
        int err;
@@ -886,9 +885,9 @@ exp_get_by_name(svc_client *clp, struct vfsmount *mnt, struct dentry *dentry,
 /*
  * Find the export entry for a given dentry.
  */
-struct svc_export *
-exp_parent(svc_client *clp, struct vfsmount *mnt, struct dentry *dentry,
-          struct cache_req *reqp)
+static struct svc_export *exp_parent(svc_client *clp, struct vfsmount *mnt,
+                                    struct dentry *dentry,
+                                    struct cache_req *reqp)
 {
        svc_export *exp;
 
@@ -1213,9 +1212,8 @@ out:
        return err;
 }
 
-struct svc_export *
-exp_find(struct auth_domain *clp, int fsid_type, u32 *fsidv,
-        struct cache_req *reqp)
+static struct svc_export *exp_find(struct auth_domain *clp, int fsid_type,
+                                  u32 *fsidv, struct cache_req *reqp)
 {
        struct svc_export *exp;
        struct svc_expkey *ek = exp_find_key(clp, fsid_type, fsidv, reqp);