pathinfo.fattr = fattr;
nfs_fattr_init(fattr);
- 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)
- caps |= NFS_CAP_CASE_INSENSITIVE;
- if (!pathinfo.case_preserving)
- caps |= NFS_CAP_CASE_NONPRESERVING;
- server->caps = caps;
+ if (clp->rpc_ops->version < 4 || server->namelen == 0) {
+ 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)
+ caps |= NFS_CAP_CASE_INSENSITIVE;
+ if (!pathinfo.case_preserving)
+ 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);
}
- } else if (clp->rpc_ops->version < 4) {
- server->caps &= ~(NFS_CAP_CASE_INSENSITIVE |
- NFS_CAP_CASE_NONPRESERVING);
}
if (clp->rpc_ops->discover_trunking != NULL &&