.SH NAME
nfs \- fstab format and options for the
.B nfs
-and
-.B nfs4
file systems
.SH SYNOPSIS
.I /etc/fstab
file describes how
.BR mount (8)
should assemble a system's file name hierarchy
-from various independent file systems
+from various independent file systems
(including file systems exported by NFS servers).
Each line in the
.I /etc/fstab
.P
The server's hostname and export pathname
are separated by a colon, while
-the mount options are separated by commas. The remaining fields
+the mount options are separated by commas. The remaining fields
are separated by blanks or tabs.
+.P
The server's hostname can be an unqualified hostname,
a fully qualified domain name,
-or a dotted quad IPv4 address.
+a dotted quad IPv4 address, or
+an IPv6 address enclosed in square brackets.
+Link-local and site-local IPv6 addresses must be accompanied by an
+interface identifier.
+See
+.BR ipv6 (7)
+for details on specifying raw IPv6 addresses.
+.P
The
.I fstype
-field contains either "nfs" (for version 2 or version 3 NFS mounts)
-or "nfs4" (for NFS version 4 mounts).
-The
-.B nfs
-and
-.B nfs4
-file system types share similar mount options,
-which are described below.
+field contains "nfs". Use of the "nfs4" fstype in
+.I /etc/fstab
+is deprecated.
.SH "MOUNT OPTIONS"
-Refer to
+Refer to
.BR mount (8)
for a description of generic mount options
-available for all file systems. If you do not need to
-specify any mount options, use the generic option
+available for all file systems. If you do not need to
+specify any mount options, use the generic option
.B defaults
in
.IR /etc/fstab .
-.
.DT
-.SS "Valid options for either the nfs or nfs4 file system type"
-These options are valid to use when mounting either
-.B nfs
-or
-.B nfs4
-file system types.
-They imply the same behavior
-and have the same default for both file system types.
+.SS "Options supported by all versions"
+These options are valid to use with any NFS version.
.TP 1.5i
.BR soft " / " hard
Determines the recovery behavior of the NFS client
If the
.B soft
option is specified, then the NFS client fails an NFS request
-after
+after
.B retrans
retransmissions have been sent,
causing the NFS client to return an error
option.
.TP 1.5i
.BI timeo= n
-The time (in tenths of a second) the NFS client waits for a
-response before it retries an NFS request. If this
+The time (in tenths of a second) the NFS client waits for a
+response before it retries an NFS request. If this
option is not specified, requests are retried every
60 seconds for NFS over TCP.
The NFS client does not perform any kind of timeout backoff
.IP
However, for NFS over UDP, the client uses an adaptive
algorithm to estimate an appropriate timeout value for frequently used
-request types (such as READ and WRITE requests), but uses the
+request types (such as READ and WRITE requests), but uses the
.B timeo
setting for infrequently used request types (such as FSINFO requests).
If the
.TP 1.5i
.BI retrans= n
The number of times the NFS client retries a request before
-it attempts further recovery action. If the
+it attempts further recovery action. If the
.B retrans
-option is not specified, the NFS client tries each request
+option is not specified, the NFS client tries each request
three times.
.IP
The NFS client generates a "server not responding" message
-after
+after
.B retrans
retries, then attempts further recovery (depending on whether the
.B hard
The
.B rsize
value is a positive integral multiple of 1024.
-Specified
+Specified
.B rsize
values lower than 1024 are replaced with 4096; values larger than
1048576 are replaced with 1048576. If a specified value is within the supported
-range but not a multiple of 1024, it is rounded down to the nearest
+range but not a multiple of 1024, it is rounded down to the nearest
multiple of 1024.
.IP
If an
.B rsize
-value is not specified, or if the specified
-.B rsize
+value is not specified, or if the specified
+.B rsize
value is larger than the maximum that either client or server can support,
the client and server negotiate the largest
.B rsize
-value that they can both support.
+value that they can both support.
.IP
The
.B rsize
.BI wsize= n
The maximum number of bytes per network WRITE request
that the NFS client can send when writing data to a file
-on an NFS server. The actual data payload size of each
+on an NFS server. The actual data payload size of each
NFS WRITE request is equal to
or smaller than the
.B wsize
Similar to
.B rsize
, the
-.B wsize
+.B wsize
value is a positive integral multiple of 1024.
-Specified
+Specified
.B wsize
values lower than 1024 are replaced with 4096; values larger than
1048576 are replaced with 1048576. If a specified value is within the supported
-range but not a multiple of 1024, it is rounded down to the nearest
+range but not a multiple of 1024, it is rounded down to the nearest
multiple of 1024.
.IP
If a
.B wsize
-value is not specified, or if the specified
-.B wsize
+value is not specified, or if the specified
+.B wsize
value is larger than the maximum that either client or server can support,
the client and server negotiate the largest
.B wsize
.B wsize
value negotiated by the client and server is reported in the
.I /proc/mounts
-file.
+file.
.TP 1.5i
.BR ac " / " noac
-Selects whether the client may cache file attributes. If neither
-option is specified (or if
+Selects whether the client may cache file attributes. If neither
+option is specified (or if
.B ac
-is specified), the client caches file
-attributes.
+is specified), the client caches file
+attributes.
.IP
-To improve performance, NFS clients cache file
-attributes. Every few seconds, an NFS client checks the server's version of each
-file's attributes for updates. Changes that occur on the server in
-those small intervals remain undetected until the client checks the
-server again. The
+To improve performance, NFS clients cache file
+attributes. Every few seconds, an NFS client checks the server's version of each
+file's attributes for updates. Changes that occur on the server in
+those small intervals remain undetected until the client checks the
+server again. The
.B noac
-option prevents clients from caching file
-attributes so that applications can more quickly detect file changes
+option prevents clients from caching file
+attributes so that applications can more quickly detect file changes
on the server.
.IP
-In addition to preventing the client from caching file attributes,
-the
+In addition to preventing the client from caching file attributes,
+the
.B noac
-option forces application writes to become synchronous so
-that local changes to a file become visible on the server
-immediately. That way, other clients can quickly detect recent
+option forces application writes to become synchronous so
+that local changes to a file become visible on the server
+immediately. That way, other clients can quickly detect recent
writes when they check the file's attributes.
.IP
Using the
command retries an NFS mount operation
in the foreground or background before giving up.
If this option is not specified, the default value for foreground mounts
-is 2 minutes, and the default value for background mounts is 10000 minutes (80 minutes shy of one week).
+is 2 minutes, and the default value for background mounts is 10000 minutes
+(80 minutes shy of one week).
+If a value of zero is specified, the
+.BR mount (8)
+command exits immediately after the first failure.
.TP 1.5i
.BI sec= mode
The RPCGSS security flavor to use for accessing files on this mount point.
.TP 1.5i
.BR sharecache " / " nosharecache
Determines how the client's data cache and attribute cache are shared
-when mounting the same export more than once concurrently. Using the
-same cache reduces memory requirements on the client and presents
-identical file contents to applications when the same remote file is
+when mounting the same export more than once concurrently. Using the
+same cache reduces memory requirements on the client and presents
+identical file contents to applications when the same remote file is
accessed via different mount points.
.IP
-If neither option is specified, or if the
+If neither option is specified, or if the
.B sharecache
-option is
-specified, then a single cache is used for all mount points that
-access the same export. If the
+option is
+specified, then a single cache is used for all mount points that
+access the same export. If the
.B nosharecache
-option is specified,
-then that mount point gets a unique cache. Note that when data and
-attribute caches are shared, the mount options from the first mount
+option is specified,
+then that mount point gets a unique cache. Note that when data and
+attribute caches are shared, the mount options from the first mount
point take effect for subsequent concurrent mounts of the same export.
.IP
As of kernel 2.6.18, the behavior specified by
to allow clients to connect via non-privileged source ports.
.IP
Refer to the SECURITY CONSIDERATIONS section for important details.
-.SS "Valid options for the nfs file system type"
+.TP 1.5i
+.BI lookupcache= mode
+Specifies how the kernel manages its cache of directory entries
+for a given mount point.
+.I mode
+can be one of
+.BR all ,
+.BR none ,
+.BR pos ,
+or
+.BR positive .
+This option is supported in kernels 2.6.28 and later.
+.IP
+The Linux NFS client caches the result of all NFS LOOKUP requests.
+If the requested directory entry exists on the server,
+the result is referred to as
+.IR positive .
+If the requested directory entry does not exist on the server,
+the result is referred to as
+.IR negative .
+.IP
+If this option is not specified, or if
+.B all
+is specified, the client assumes both types of directory cache entries
+are valid until their parent directory's cached attributes expire.
+.IP
+If
+.BR pos " or " positive
+is specified, the client assumes positive entries are valid
+until their parent directory's cached attributes expire, but
+always revalidates negative entires before an application
+can use them.
+.IP
+If
+.B none
+is specified,
+the client revalidates both types of directory cache entries
+before an application can use them.
+This permits quick detection of files that were created or removed
+by other clients, but can impact application and server performance.
+.IP
+The DATA AND METADATA COHERENCE section contains a
+detailed discussion of these trade-offs.
+.SS "Options for NFS versions 2 and 3 only"
Use these options, along with the options in the above subsection,
-for mounting the
-.B nfs
-file system type.
+for NFS versions 2 and 3 only.
.TP 1.5i
-.BI proto= transport
-The transport the NFS client uses
+.BI proto= netid
+The transport protocol name and protocol family the NFS client uses
to transmit requests to the NFS server for this mount point.
-.I transport
-can be either
-.B udp
-or
-.BR tcp .
-Each transport uses different default
+If an NFS server has both an IPv4 and an IPv6 address, using a specific
+netid will force the use of IPv4 or IPv6 networking to communicate
+with that server.
+.IP
+If support for TI-RPC is built into the
+.B mount.nfs
+command,
+.I netid
+is a valid netid listed in
+.IR /etc/netconfig .
+The value "rdma" may also be specified.
+If the
+.B mount.nfs
+command does not have TI-RPC support, then
+.I netid
+is one of "tcp," "udp," or "rdma," and only IPv4 may be used.
+.IP
+Each transport protocol uses different default
.B retrans
and
.B timeo
-settings; refer to the description of these two mount options for details.
+settings.
+Refer to the description of these two mount options for details.
.IP
In addition to controlling how the NFS client transmits requests to
the server, this mount option also controls how the
.BR mount (8)
command communicates with the server's rpcbind and mountd services.
-Specifying
-.B proto=tcp
-forces all traffic from the
+Specifying a netid that uses TCP forces all traffic from the
.BR mount (8)
command and the NFS client to use TCP.
-Specifying
-.B proto=udp
-forces all traffic types to use UDP.
+Specifying a netid that uses UDP forces all traffic types to use UDP.
.IP
If the
.B proto
.BR proto=tcp.
It is included for compatibility with other operating systems.
.TP 1.5i
+.B rdma
+The
+.B rdma
+option is an alternative to specifying
+.BR proto=rdma.
+.TP 1.5i
.BI port= n
The numeric value of the server's NFS service port.
If the server's NFS service is not available on the specified port,
This option can be used when mounting an NFS server
through a firewall that blocks the rpcbind protocol.
.TP 1.5i
-.BI mountproto= transport
-The transport the NFS client uses
+.BI mountproto= netid
+The transport protocol name and protocol family the NFS client uses
to transmit requests to the NFS server's mountd service when performing
this mount request, and when later unmounting this mount point.
-.I transport
-can be either
-.B udp
-or
-.BR tcp .
+.IP
+If support for TI-RPC is built into the
+.B mount.nfs
+command,
+.I netid
+is a valid netid listed in
+.IR /etc/netconfig .
+Otherwise,
+.I netid
+is one of "tcp" or "udp," and only IPv4 may be used.
.IP
This option can be used when mounting an NFS server
through a firewall that blocks a particular transport.
can be specified.
If the server's mountd service is not available via the specified
transport, the mount request fails.
+.IP
Refer to the TRANSPORT METHODS section for more on how the
.B mountproto
mount option interacts with the
.TP 1.5i
.BI nfsvers= n
The NFS protocol version number used to contact the server's NFS service.
-The Linux client supports version 2 and version 3 of the NFS protocol
-when using the file system type
-.BR nfs .
-If the server does not support the requested version,
-the mount request fails.
-If this option is not specified, the client attempts to use version 3,
-but negotiates the NFS version with the server if version 3 support
-is not available.
+If the server does not support the requested version, the mount request fails.
+If this option is not specified, the client negotiates a suitable version with
+the server, trying version 4 first, version 3 second, and version 2 last.
.TP 1.5i
.BI vers= n
This option is an alternative to the
.TP 1.5i
.BR lock " / " nolock
Selects whether to use the NLM sideband protocol to lock files on the server.
-If neither option is specified (or if
-.B lock
-is specified), NLM locking is used for this mount point.
+If neither option is specified (or if
+.B lock
+is specified), NLM locking is used for this mount point.
When using the
.B nolock
option, applications can lock files,
.TP 1.5i
.BR intr " / " nointr
Selects whether to allow signals to interrupt file operations
-on this mount point. If neither option
-is specified (or if
+on this mount point. If neither option
+is specified (or if
.B nointr
is specified),
signals do not interrupt NFS file operations. If
-.B intr
-is specified, system calls return EINTR if an in-progress NFS operation is interrupted by
+.B intr
+is specified, system calls return EINTR if an in-progress NFS operation is interrupted by
a signal.
.IP
Using the
.TP 1.5i
.BR cto " / " nocto
Selects whether to use close-to-open cache coherence semantics.
-If neither option is specified (or if
+If neither option is specified (or if
.B cto
is specified), the client uses close-to-open
-cache coherence semantics. If the
-.B nocto
+cache coherence semantics. If the
+.B nocto
option is specified, the client uses a non-standard heuristic to determine when
-files on the server have changed.
+files on the server have changed.
.IP
Using the
.B nocto
.BR acl " / " noacl
Selects whether to use the NFSACL sideband protocol on this mount point.
The NFSACL sideband protocol is a proprietary protocol
-implemented in Solaris that manages Access Control Lists. NFSACL was never
+implemented in Solaris that manages Access Control Lists. NFSACL was never
made a standard part of the NFS protocol specification.
.IP
-If neither
+If neither
.B acl
-nor
-.B noacl
+nor
+.B noacl
option is specified,
the NFS client negotiates with the server
to see if the NFSACL protocol is supported,
If this option is not specified, the NFS client uses READDIRPLUS requests
on NFS version 3 mounts to read small directories.
Some applications perform better if the client uses only READDIR requests
-for all directories.
-.SS "Valid options for the nfs4 file system type"
+for all directories.
+.TP 1.5i
+.BR local_lock= mechanism
+Specifies whether to use local locking for any or both of the flock and the
+POSIX locking mechanisms.
+.I mechanism
+can be one of
+.BR all ,
+.BR flock ,
+.BR posix ,
+or
+.BR none .
+This option is supported in kernels 2.6.37 and later.
+.IP
+The Linux NFS client provides a way to make locks local. This means, the
+applications can lock files, but such locks provide exclusion only against
+other applications running on the same client. Remote applications are not
+affected by these locks.
+.IP
+If this option is not specified, or if
+.B none
+is specified, the client assumes that the locks are not local.
+.IP
+If
+.BR all
+is specified, the client assumes that both flock and POSIX locks are local.
+.IP
+If
+.BR flock
+is specified, the client assumes that only flock locks are local and uses
+NLM sideband protocol to lock files when POSIX locks are used.
+.IP
+If
+.BR posix
+is specified, the client assumes that POSIX locks are local and uses NLM
+sideband protocol to lock files when flock locks are used.
+.IP
+To support legacy flock behavior similar to that of NFS clients < 2.6.12, use
+'local_lock=flock'. This option is required when exporting NFS mounts via
+Samba as Samba maps Windows share mode locks as flock. Since NFS clients >
+2.6.12 implement flock by emulating POSIX locks, this will result in
+conflicting locks.
+.IP
+NOTE: When used together, the 'local_lock' mount option will be overridden
+by 'nolock'/'lock' mount option.
+.SS "Options for NFS version 4 only"
Use these options, along with the options in the first subsection above,
-for mounting the
-.B nfs4
-file system type.
+for NFS version 4 and newer.
.TP 1.5i
-.BI proto= transport
-The transport the NFS client uses
+.BI proto= netid
+The transport protocol name and protocol family the NFS client uses
to transmit requests to the NFS server for this mount point.
-.I transport
-can be either
-.B udp
-or
-.BR tcp .
+If an NFS server has both an IPv4 and an IPv6 address, using a specific
+netid will force the use of IPv4 or IPv6 networking to communicate
+with that server.
+.IP
+If support for TI-RPC is built into the
+.B mount.nfs
+command,
+.I netid
+is a valid netid listed in
+.IR /etc/netconfig .
+Otherwise,
+.I netid
+is one of "tcp" or "udp," and only IPv4 may be used.
+.IP
All NFS version 4 servers are required to support TCP,
-so if this mount option is not specified, the NFS version 4 client
-uses the TCP transport protocol.
+so if this mount option is not specified, the NFS version 4 client
+uses the TCP protocol.
Refer to the TRANSPORT METHODS section for more details.
.TP 1.5i
.BI port= n
.TP 1.5i
.BR intr " / " nointr
Selects whether to allow signals to interrupt file operations
-on this mount point. If neither option is specified (or if
-.B intr
-is specified), system calls return EINTR if an in-progress NFS operation
-is interrupted by a signal. If
+on this mount point. If neither option is specified (or if
+.B intr
+is specified), system calls return EINTR if an in-progress NFS operation
+is interrupted by a signal. If
.B nointr
-is specified, signals do not
+is specified, signals do not
interrupt NFS operations.
.IP
Using the
If neither
.B cto
nor
-.B nocto
+.B nocto
is specified,
the default is to use close-to-open cache coherence
semantics for directories.
the behavior of this option in more detail.
.TP 1.5i
.BI clientaddr= n.n.n.n
-Specifies a single IPv4 address (in dotted-quad form)
-that the NFS client advertises to allow servers
-to perform NFS version 4 callback requests against
-files on this mount point. If the server is unable to
-establish callback connections to clients, performance
+Specifies a single IPv4 address (in dotted-quad form),
+or a non-link-local IPv6 address,
+that the NFS client advertises to allow servers
+to perform NFS version 4 callback requests against
+files on this mount point. If the server is unable to
+establish callback connections to clients, performance
may degrade, or accesses to files may temporarily hang.
.IP
If this option is not specified, the
In the presence of multiple client network interfaces,
special routing policies,
or atypical network topologies,
-the exact address to use for callbacks may be nontrivial to determine.
+the exact address to use for callbacks may be nontrivial to determine.
+.SH nfs4 FILE SYSTEM TYPE
+The
+.BR nfs4
+file system type is an old syntax for specifying NFSv4 usage. It can still
+be used with all NFSv4-specific and common options, excepted the
+.B nfsvers
+mount option.
+.SH MOUNT CONFIGURATION FILE
+If the mount command is configured to do so, all of the mount options
+described in the previous section can also be configured in the
+.I /etc/nfsmount.conf
+file. See
+.BR nfsmount.conf(5)
+for details.
.SH EXAMPLES
To mount an export using NFS version 2,
use the
.B nfsvers=3
mount option.
To mount using NFS version 4,
-use the
-.B nfs4
-file system type.
-The
-.B nfsvers
-mount option is not supported for the
+use either the
+.B nfs
+file system type, with the
+.B nfsvers=4
+mount option, or the
.B nfs4
file system type.
.P
.TA 2.5i +0.7i +0.7i +.7i
server:/export /usr nfs ro,nolock,nocto,actimeo=3600 0 0
.FI
+.P
+This example shows how to mount an NFS server
+using a raw IPv6 link-local address.
+.P
+.NF
+.TA 2.5i +0.7i +0.7i +.7i
+ [fe80::215:c5ff:fb3e:e2b1%eth0]:/export /mnt nfs defaults 0 0
+.FI
.SH "TRANSPORT METHODS"
NFS clients send requests to NFS servers via
Remote Procedure Calls, or
In some cases, however, it pays to specify
these settings explicitly using mount options.
.P
-Traditionally, NFS clients used the UDP transport exclusively for
-transmitting requests to servers. Though its implementation is
-simple, NFS over UDP has many limitations that prevent smooth
-operation and good performance in some common deployment
-environments. Even an insignificant packet loss rate results in the
-loss of whole NFS requests; as such, retransmit timeouts are usually
-in the subsecond range to allow clients to recover quickly from
-dropped requests, but this can result in extraneous network traffic
+Traditionally, NFS clients used the UDP transport exclusively for
+transmitting requests to servers. Though its implementation is
+simple, NFS over UDP has many limitations that prevent smooth
+operation and good performance in some common deployment
+environments. Even an insignificant packet loss rate results in the
+loss of whole NFS requests; as such, retransmit timeouts are usually
+in the subsecond range to allow clients to recover quickly from
+dropped requests, but this can result in extraneous network traffic
and server load.
.P
-However, UDP can be quite effective in specialized settings where
-the network’s MTU is large relative to NFS’s data transfer size (such
-as network environments that enable jumbo Ethernet frames). In such
-environments, trimming the
-.B rsize
-and
-.B wsize
-settings so that each
-NFS read or write request fits in just a few network frames (or even
-in a single frame) is advised. This reduces the probability that
-the loss of a single MTU-sized network frame results in the loss of
+However, UDP can be quite effective in specialized settings where
+the networks MTU is large relative to NFSs data transfer size (such
+as network environments that enable jumbo Ethernet frames). In such
+environments, trimming the
+.B rsize
+and
+.B wsize
+settings so that each
+NFS read or write request fits in just a few network frames (or even
+in a single frame) is advised. This reduces the probability that
+the loss of a single MTU-sized network frame results in the loss of
an entire large read or write request.
.P
-TCP is the default transport protocol used for all modern NFS
+TCP is the default transport protocol used for all modern NFS
implementations. It performs well in almost every conceivable
-network environment and provides excellent guarantees against data
-corruption caused by network unreliability. TCP is often a
+network environment and provides excellent guarantees against data
+corruption caused by network unreliability. TCP is often a
requirement for mounting a server through a network firewall.
.P
Under normal circumstances, networks drop packets much more
.B retrans
mount option), it assumes a network partition has occurred,
and attempts to reconnect to the server on a fresh socket. Since
-TCP itself makes network data transfer reliable,
+TCP itself makes network data transfer reliable,
.B rsize
-and
+and
.B wsize
-can safely be allowed to default to the largest values supported by
+can safely be allowed to default to the largest values supported by
both client and server, independent of the network's MTU size.
.SS "Using the mountproto mount option"
This section applies only to NFS version 2 and version 3 mounts
perfect cache coherence among their clients.
Perfect cache coherence among disparate NFS clients
is expensive to achieve, especially on wide area networks.
-As such, NFS settles for weaker cache coherence that
-satisfies the requirements of most file sharing types. Normally,
+As such, NFS settles for weaker cache coherence that
+satisfies the requirements of most file sharing types. Normally,
file sharing is completely sequential:
first client A opens a file, writes something to it, then closes it;
then client B opens the same file, and reads the changes.
that client's updates or some other client's updates
that altered the file.
.SS "Attribute caching"
-Use the
+Use the
.B noac
mount option to achieve attribute cache coherence
among multiple clients.
true cluster file system cache coherence
without some type of application serialization.
If absolute cache coherence among clients is required,
-applications should use file locking. Alternatively, applications
+applications should use file locking. Alternatively, applications
can also open their files with the O_DIRECT flag
to disable data caching entirely.
+.SS "Directory entry caching"
+The Linux NFS client caches the result of all NFS LOOKUP requests.
+If the requested directory entry exists on the server,
+the result is referred to as a
+.IR positive " lookup result.
+If the requested directory entry does not exist on the server
+(that is, the server returned ENOENT),
+the result is referred to as
+.IR negative " lookup result.
+.P
+To detect when directory entries have been added or removed
+on the server,
+the Linux NFS client watches a directory's mtime.
+If the client detects a change in a directory's mtime,
+the client drops all cached LOOKUP results for that directory.
+Since the directory's mtime is a cached attribute, it may
+take some time before a client notices it has changed.
+See the descriptions of the
+.BR acdirmin ", " acdirmax ", and " noac
+mount options for more information about
+how long a directory's mtime is cached.
+.P
+Caching directory entries improves the performance of applications that
+do not share files with applications on other clients.
+Using cached information about directories can interfere
+with applications that run concurrently on multiple clients and
+need to detect the creation or removal of files quickly, however.
+The
+.B lookupcache
+mount option allows some tuning of directory entry caching behavior.
+.P
+Before kernel release 2.6.28,
+the Linux NFS client tracked only positive lookup results.
+This permitted applications to detect new directory entries
+created by other clients quickly while still providing some of the
+performance benefits of caching.
+If an application depends on the previous lookup caching behavior
+of the Linux NFS client, you can use
+.BR lookupcache=positive .
+.P
+If the client ignores its cache and validates every application
+lookup request with the server,
+that client can immediately detect when a new directory
+entry has been either created or removed by another client.
+You can specify this behavior using
+.BR lookupcache=none .
+The extra NFS requests needed if the client does not
+cache directory entries can exact a performance penalty.
+Disabling lookup caching
+should result in less of a performance penalty than using
+.BR noac ,
+and has no effect on how the NFS client caches the attributes of files.
+.P
.SS "The sync mount option"
The NFS client treats the
.B sync
mount option differently than some other file systems
-(refer to
+(refer to
.BR mount (8)
for a description of the generic
.B sync
.B sync
nor
.B async
-is specified (or if the
-.B async
+is specified (or if the
+.B async
option is specified),
the NFS client delays sending application
writes to the server
-until any of these events occur:
+until any of these events occur:
.IP
Memory pressure forces reclamation of system memory resources.
.IP
-An application flushes file data explicitly with
+An application flushes file data explicitly with
.BR sync (2),
.BR msync (2),
or
Applications can use the O_SYNC open flag to force application
writes to individual files to go to the server immediately without
the use of the
-.B sync
+.B sync
mount option.
.SS "Using file locks with NFS"
The Network Lock Manager protocol is a separate sideband protocol
.B nolock
option when using NFS to mount
.I /var
-because
-.I /var
+because
+.I /var
contains files used by the NLM implementation on Linux.
.P
Specifying the
.B nolock
option may also be advised to improve the performance
of a proprietary application which runs on a single client
-and uses file locks extensively.
+and uses file locks extensively.
.SS "NFS version 4 caching features"
The data and metadata caching behavior of NFS version 4
clients is similar to that of earlier versions.
The NFS version 4 specification mandates NFSv4 ACLs,
RPCGSS authentication, and RPCGSS security flavors
that provide per-RPC integrity checking and encryption.
-Because NFS version 4 combines the
+Because NFS version 4 combines the
function of the sideband protocols into the main NFS protocol,
the new security features apply to all NFS version 4 operations
including mounting, file locking, and so on.
Specifying
.B sec=krb5
provides cryptographic proof of a user's identity in each RPC request.
-This provides strong verification of the identity of users
+This provides strong verification of the identity of users
accessing data on the server.
Note that additional configuration besides adding this mount option
is required in order to enable Kerberos security.
-Refer to the
+Refer to the
.BR rpc.gssd (8)
man page for details.
.P
It is still possible to mount an NFS server through a firewall,
though some of the
.BR mount (8)
-command's automatic service endpoint discovery mechanisms may not work; this
+command's automatic service endpoint discovery mechanisms may not work; this
requires you to provide specific endpoint details via NFS mount options.
.P
NFS servers normally run a portmapper or rpcbind daemon to advertise
-their service endpoints to clients. Clients use the rpcbind daemon to determine:
+their service endpoints to clients. Clients use the rpcbind daemon to determine:
.IP
What network port each RPC-based service is using
.IP
-What transport protocols each RPC-based service supports
+What transport protocols each RPC-based service supports
.P
The rpcbind daemon uses a well-known port number (111) to help clients find a service endpoint.
Although NFS often uses a standard port number (2049),
.P
The NFS version 4 specification mandates a new version
of Access Control Lists that are semantically richer than POSIX ACLs.
-NFS version 4 ACLs are not fully compatible with POSIX ACLs; as such,
+NFS version 4 ACLs are not fully compatible with POSIX ACLs; as such,
some translation between the two is required
-in an environment that mixes POSIX ACLs and NFS version 4.
-.SH FILES
-.TP 1.5i
-.I /etc/fstab
-file system table
-.SH BUGS
-The generic
-.B remount
-option is not fully supported.
-Generic options, such as
-.BR rw " and " ro
-can be modified using the
-.B remount
-option,
-but NFS-specific options are not all supported.
+in an environment that mixes POSIX ACLs and NFS version 4.
+.SH "THE REMOUNT OPTION"
+Generic mount options such as
+.BR rw " and " sync
+can be modified on NFS mount points using the
+.BR remount
+option.
+See
+.BR mount (8)
+for more information on generic mount options.
+.P
+With few exceptions, NFS-specific options
+are not able to be modified during a remount.
The underlying transport or NFS version
cannot be changed by a remount, for example.
+.P
Performing a remount on an NFS file system mounted with the
.B noac
option may have unintended consequences.
The
.B noac
-option is a mixture of a generic option,
+option is a combination of the generic option
.BR sync ,
-and an NFS-specific option
+and the NFS-specific option
.BR actimeo=0 .
+.SS "Unmounting after a remount"
+For mount points that use NFS versions 2 or 3, the NFS umount subcommand
+depends on knowing the original set of mount options used to perform the
+MNT operation.
+These options are stored on disk by the NFS mount subcommand,
+and can be erased by a remount.
+.P
+To ensure that the saved mount options are not erased during a remount,
+specify either the local mount directory, or the server hostname and
+export pathname, but not both, during a remount. For example,
+.P
+.NF
+.TA 2.5i
+ mount -o remount,ro /mnt
+.FI
.P
+merges the mount option
+.B ro
+with the mount options already saved on disk for the NFS server mounted at /mnt.
+.SH FILES
+.TP 1.5i
+.I /etc/fstab
+file system table
+.SH BUGS
Before 2.4.7, the Linux NFS client did not support NFS over TCP.
.P
Before 2.4.20, the Linux NFS client used a heuristic
.BR mount.nfs (5),
.BR umount.nfs (5),
.BR exports (5),
+.BR netconfig (5),
+.BR ipv6 (7),
.BR nfsd (8),
.BR sm-notify (8),
.BR rpc.statd (8),
.br
RFC 2203 for the RPCSEC GSS API protocol specification.
.br
-RFC 3530 for the NFS version 4 specification.
+RFC 3530 for the NFS version 4 specification.