nfs: kernel should return EPROTONOSUPPORT when not support NFSv4
authorMi Jinlong <mijinlong@cn.fujitsu.com>
Sat, 30 Oct 2010 02:19:33 +0000 (10:19 +0800)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 8 Dec 2010 00:30:44 +0000 (19:30 -0500)
commit0de1b7e800188782973598158e0acbb9e08e6c99
tree2f292659ac8e6a5c3d8ec55e7bdb9339cc37df0e
parent21ac19d484a8ffb66f64487846c8d53afef04d2b
nfs: kernel should return EPROTONOSUPPORT when not support NFSv4

  When nfs client(kernel) don't support NFSv4, maybe user build
  kernel without NFSv4, there is a problem.

  Using command "mount SERVER-IP:/nfsv3 /mnt/" to mount NFSv3
  filesystem, mount should should success, but fail and get error:

    "mount.nfs: an incorrect mount option was specified"

  System call mount "nfs"(not "nfs4") with "vers=4",
  if CONFIG_NFS_V4 is not defined, the "vers=4" will be parsed
  as invalid argument and kernel return EINVAL to nfs-utils.

  About that, we really want get EPROTONOSUPPORT rather than
  EINVAL. This path make sure kernel parses argument success,
  and return EPROTONOSUPPORT at nfs_validate_mount_data().

Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/super.c