aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRick Macklem <rmacklem@FreeBSD.org>2026-06-03 19:04:59 +0000
committerRick Macklem <rmacklem@FreeBSD.org>2026-06-03 19:04:59 +0000
commit07d733963ecd1957999f5381b438b8c369686750 (patch)
treecee733a634253f9e9ef5b2b0ba34247b7f3fd9ca
parent9a133eee1ed9cf3220055c1d7543e1074bdc628a (diff)
nfs_clrpcops.c: Change initial layout type to flex files
Since the File 4.1 layout is only supported by some large configurations of Netapp Filers, switch the client pNFS code to attempting to use Flexible File Format first. File 4.1 Layout should still work for any servers that do no support Flexible File Layout.
-rw-r--r--sys/fs/nfsclient/nfs_clrpcops.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c
index 75713c875622..812bb5279e07 100644
--- a/sys/fs/nfsclient/nfs_clrpcops.c
+++ b/sys/fs/nfsclient/nfs_clrpcops.c
@@ -5541,7 +5541,7 @@ nfsrpc_exchangeid(struct nfsmount *nmp, struct nfsclclient *clp,
NFSHASPNFSOPT(nmp)) {
NFSCL_DEBUG(1, "set PNFS\n");
NFSLOCKMNT(nmp);
- nmp->nm_state |= NFSSTA_PNFS;
+ nmp->nm_state |= NFSSTA_PNFS | NFSSTA_FLEXFILE;
NFSUNLOCKMNT(nmp);
dsp->nfsclds_flags |= NFSCLDS_MDS;
}
@@ -8910,10 +8910,10 @@ nfsrpc_layoutgetres(struct nfsmount *nmp, vnode_t vp, uint8_t *newfhp,
if (laystat == NFSERR_UNKNLAYOUTTYPE) {
NFSLOCKMNT(nmp);
- if (!NFSHASFLEXFILE(nmp)) {
- /* Switch to using Flex File Layout. */
- nmp->nm_state |= NFSSTA_FLEXFILE;
- } else if (layouttype == NFSLAYOUT_FLEXFILE) {
+ if (NFSHASFLEXFILE(nmp)) {
+ /* Switch to using File 4.1 Layout. */
+ nmp->nm_state &= ~NFSSTA_FLEXFILE;
+ } else if (layouttype == NFSLAYOUT_NFSV4_1_FILES) {
/* Disable pNFS. */
NFSCL_DEBUG(1, "disable PNFS\n");
nmp->nm_state &= ~(NFSSTA_PNFS | NFSSTA_FLEXFILE);