pathinfo.fattr = fattr;
nfs_fattr_init(fattr);
- /* Clear before probing so a failed RPC does not retain stale bits. */
- if (clp->rpc_ops->version < 4)
- server->caps &= ~(NFS_CAP_CASE_INSENSITIVE |
- NFS_CAP_CASE_NONPRESERVING);
-
if (clp->rpc_ops->pathconf(server, mntfh, &pathinfo) >= 0) {
if (server->namelen == 0)
server->namelen = pathinfo.max_namelen;
if (clp->rpc_ops->version < 4) {
+ unsigned int caps = server->caps;
+
+ caps &= ~(NFS_CAP_CASE_INSENSITIVE |
+ NFS_CAP_CASE_NONPRESERVING);
if (pathinfo.case_insensitive)
- server->caps |= NFS_CAP_CASE_INSENSITIVE;
+ caps |= NFS_CAP_CASE_INSENSITIVE;
if (!pathinfo.case_preserving)
- server->caps |= NFS_CAP_CASE_NONPRESERVING;
+ caps |= NFS_CAP_CASE_NONPRESERVING;
+ server->caps = caps;
}
+ } else if (clp->rpc_ops->version < 4) {
+ server->caps &= ~(NFS_CAP_CASE_INSENSITIVE |
+ NFS_CAP_CASE_NONPRESERVING);
}
if (clp->rpc_ops->discover_trunking != NULL &&