NFSv4 client finally merged

Blog post by paweł_dziepak on Fri, 2013-03-15 17:09

Earlier this week NFSv4 client I have been working on during the last year Google Summer of Code has been merged into the main Haiku repository and is now available in nightly images. The client supports all caching mechanisms available in the version 4 of NFS what means that it can get the most out of network connection and the server. Unfortunately due to limitations of the NFS protocol itself extended attributes are not supported yet.

In order to mount a NFS share you need to type the following command:

mount -t nfs4 -p "server_address:path flags" directory

server_address may be either an IP address or a host name. Flags are optional, the default configuration should be appropriate in most cases and should be changed only if problems appear. The available flags are:

  • hard - if no valid reply to a RPC request was received the request is retried indefinitely.
  • soft - if no valid reply to a RPC request was received the request is retried no more than retrans times. This is set by default.
  • timeo=X - request time limit before next retransmission (default: 60 seconds).
  • retrans=X - retry requests X times (default: 5).
  • ac - use metadata cache (enabled by default).
  • noac - do not use metadata cache.
  • port=X - connect to port X (default: 2049).
  • proto=X - use transport protocol X. UDP and TCP are available. If this flag is not specified TCP is used. Note that some servers does not support open delegations if the client connects via UDP what may reduce performance.

Since the NFS client requires now much less attention than earlier, I have concentrated on data execution prevention (DEP) and address space layout randomization (ASLR). This two features when enabled will make exploiting vulnerabilities in any Haiku application significantly harder.