lkml.org 
[lkml]   [2002]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    SubjectRe: Problems with NFS exports
    On Wednesday August 7, fw@deneb.enyo.de wrote:
    > Florian Weimer <fw@deneb.enyo.de> writes:
    >
    > > I'm seeing weired errors with nfsctl():
    > >
    > > This works:
    > >
    > > nfsservctl(NFSCTL_EXPORT, "deneb.enyo.de", "/mnt/storage/2/backup/deneb/tmp", makedev(3, 66), ino 167772288, uid 65534, gid 65534) = 0
    > >
    > > But a subsequent call fails:
    > >
    > > nfsservctl(NFSCTL_EXPORT, "deneb.enyo.de", "/mnt/storage/2/backup/deneb", makedev(3, 66), ino 150995072, uid 65534, gid 65534) = -1 EINVAL (Invalid argument)
    > >
    > > I don't understand what makes the difference (the inode values are
    > > correct). This is kernel 2.4.18 with XFS support, and the directory
    > > resides on an XFS file system.
    > >
    > > Any ideas?
    >
    > (Full quote because of additional recipeint.)
    >
    > It appears that a directory tree can only be exported once. Is this
    > intentional? If yes, the following patch should be applied (to
    > linux/fs/nfsd/export.c), so that the return value is more meaningful:

    Probably better documentation in exports.5 would be just as useful.
    And "BUSY" probably isn't correct ....
    The rule is that you cannot export a directory and an ancestor of that
    directory in the same filesystem.
    /a/1 and /a/2 can both be exported, but not /a and /a/1.

    Reason: exporting "/a" means exporting that directoring and all
    descendants of it in the same filesystem.
    If you export /a with different flags than /a/1 it is ambiguous.

    And personally, I doubt that there are very many situations where it
    makes sense.

    It would be possible to dis-ambiguate the ambiguity but it wouldn't be
    very clean, and I really am not sure that it is worth the effort.

    NeilBrown


    >
    > --- export.c 2002/08/07 09:22:11 1.1
    > +++ export.c 2002/08/07 09:22:28
    > @@ -219,6 +219,7 @@
    > goto finish;
    > }
    >
    > + err = -EBUSY;
    > if ((parent = exp_child(clp, dev, nd.dentry)) != NULL) {
    > dprintk("exp_export: export not valid (Rule 3).\n");
    > goto finish;
    >
    >
    > After this change, the userspace tools can issue are more meaningful
    > error message for this case.
    > -
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:27    [W:0.023 / U:150.680 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site