diff options
Diffstat (limited to 'utils/exportfs')
-rw-r--r-- | utils/exportfs/exportfs.c | 2 | ||||
-rw-r--r-- | utils/exportfs/exports.man | 41 |
2 files changed, 26 insertions, 17 deletions
diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c index cd49a3b..2e2b6f3 100644 --- a/utils/exportfs/exportfs.c +++ b/utils/exportfs/exportfs.c @@ -404,6 +404,8 @@ dump(int verbose) c = dumpopt(c, "no_acl"); if (ep->e_flags & NFSEXP_FSID) c = dumpopt(c, "fsid=%d", ep->e_fsid); + if (ep->e_uuid) + c = dumpopt(c, "fsid=%s", ep->e_uuid); if (ep->e_mountpoint) c = dumpopt(c, "mountpoint%s%s", ep->e_mountpoint[0]?"=":"", diff --git a/utils/exportfs/exports.man b/utils/exportfs/exports.man index 892533b..3aa8de8 100644 --- a/utils/exportfs/exports.man +++ b/utils/exportfs/exports.man @@ -306,26 +306,33 @@ then the nominated path must be a mountpoint for the exportpoint to be exported. .TP -.IR fsid= num -This option forces the filesystem identification portion of the file -handle and file attributes used on the wire to be -.I num -instead of a number derived from the major and minor number of the -block device on which the filesystem is mounted. Any 32 bit number -can be used, but it must be unique amongst all the exported filesystems. +.IR fsid= num|root|uuid +NFS needs to be able to identify each filesystem that it exports. +Normally it will use a UUID for the filesystem (if the filesystem has +such a thing) or the device number of the device holding the +filesystem (if the filesystem is stored on the device). -This can be useful for NFS failover, to ensure that both servers of -the failover pair use the same NFS file handles for the shared filesystem -thus avoiding stale file handles after failover. +As not all filesystems are stored on devices, and not all filesystems +have UUIDs, it is sometimes necessary to explicitly tell NFS how to +identify a filesystem. This is done with the +.I fsid= +option. -Some Linux filesystems are not mounted on a block device; exporting -these via NFS requires the use of the -.I fsid -option (although that may still not be enough). +For NFSv4, there is a distinguished filesystem which is the root of +all exported filesystem. This is specified with +.I fsid=root +or +.I fsid=0 +both of which mean exactly the same thing. + +Other filesystems can be identified with a small integer, or a UUID +which should contain 32 hex digits and arbitrary punctuation. -The value 0 has a special meaning when use with NFSv4. NFSv4 has a -concept of a root of the overall exported filesystem. The export point -exported with fsid=0 will be used as this root. +Linux kernels version 2.6.20 and earlier do not understand the UUID +setting so a small integer must be used if an fsid option needs to be +set for such kernels. Setting both a small number and a UUID is +supported so the same configuration can be made to work on old and new +kernels alike. .SS User ID Mapping .PP |