When the pseudo root is set with fsid=0, explicit v4 mounts (via the -o flag) should fail when the incorrect export is tried instead of rolling back to v3. Signed-off-by: Steve Dickson <steved@xxxxxxxxxx> --- utils/mount/network.c | 3 ++- utils/mount/network.h | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/utils/mount/network.c b/utils/mount/network.c index 281e935..e39263e 100644 --- a/utils/mount/network.c +++ b/utils/mount/network.c @@ -1299,7 +1299,8 @@ nfs_nfs_version(struct mount_options *options, struct nfs_version *version) if (!(version->minor = strtol(version_val, &cptr, 10)) && cptr == version_val) goto ret_error; version->v_mode = V_SPECIFIC; - } else if (version->major > 3 && *cptr == '\0') + } else if (version->major > 3 && *cptr == '\0' && + version->v_mode == V_DEFAULT) /* v_mode has not been set */ version->v_mode = V_GENERAL; if (*cptr != '\0') diff --git a/utils/mount/network.h b/utils/mount/network.h index 9cc5dec..45e2b24 100644 --- a/utils/mount/network.h +++ b/utils/mount/network.h @@ -58,10 +58,10 @@ int clnt_ping(struct sockaddr_in *, const unsigned long, struct mount_options; enum { - V_DEFAULT = 0, - V_GENERAL, - V_SPECIFIC, - V_PARSE_ERR, + V_DEFAULT = 0, /* not set */ + V_GENERAL, /* single digit => 4 */ + V_SPECIFIC, /* single digit < 4 or decimal included */ + V_PARSE_ERR, /* miss all others */ }; struct nfs_version { -- 2.9.4 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html