NFSv4.1 another fix for EXCHGID4_FLAG_USE_PNFS_DS for DS server
authorOlga Kornievskaia <kolga@netapp.com>
Mon, 24 Jun 2024 13:28:27 +0000 (09:28 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Mon, 8 Jul 2024 17:47:27 +0000 (13:47 -0400)
Previously in order to mark the communication with the DS server,
we tried to use NFS_CS_DS in cl_flags. However, this flag would
only be saved for the DS server and in case where DS equals MDS,
the client would not find a matching nfs_client in nfs_match_client
that represents the MDS (but is also a DS).

Instead, don't rely on the NFS_CS_DS but instead use NFS_CS_PNFS.

Fixes: 379e4adfddd6 ("NFSv4.1: fixup use EXCHGID4_FLAG_USE_PNFS_DS for DS server")
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/nfs4client.c
fs/nfs/nfs4proc.c

index 84573df5cf5ae57616efb4d3c1b8c7556d30bc47..83378f69b35ea59fd6956adf14a3c9967cf08f10 100644 (file)
@@ -231,9 +231,8 @@ struct nfs_client *nfs4_alloc_client(const struct nfs_client_initdata *cl_init)
                __set_bit(NFS_CS_INFINITE_SLOTS, &clp->cl_flags);
        __set_bit(NFS_CS_DISCRTRY, &clp->cl_flags);
        __set_bit(NFS_CS_NO_RETRANS_TIMEOUT, &clp->cl_flags);
-
-       if (test_bit(NFS_CS_DS, &cl_init->init_flags))
-               __set_bit(NFS_CS_DS, &clp->cl_flags);
+       if (test_bit(NFS_CS_PNFS, &cl_init->init_flags))
+               __set_bit(NFS_CS_PNFS, &clp->cl_flags);
        /*
         * Set up the connection to the server before we add add to the
         * global list.
@@ -1013,7 +1012,6 @@ struct nfs_client *nfs4_set_ds_client(struct nfs_server *mds_srv,
        if (mds_srv->flags & NFS_MOUNT_NORESVPORT)
                __set_bit(NFS_CS_NORESVPORT, &cl_init.init_flags);
 
-       __set_bit(NFS_CS_DS, &cl_init.init_flags);
        __set_bit(NFS_CS_PNFS, &cl_init.init_flags);
        cl_init.max_connect = NFS_MAX_TRANSPORTS;
        /*
index 8e89b5e0ce3193f65d4303e22a203902a11c341f..8883016c551cec632d22e82f6bd7d4c4408b6c36 100644 (file)
@@ -8959,7 +8959,7 @@ nfs4_run_exchange_id(struct nfs_client *clp, const struct cred *cred,
 #ifdef CONFIG_NFS_V4_1_MIGRATION
        calldata->args.flags |= EXCHGID4_FLAG_SUPP_MOVED_MIGR;
 #endif
-       if (test_bit(NFS_CS_DS, &clp->cl_flags))
+       if (test_bit(NFS_CS_PNFS, &clp->cl_flags))
                calldata->args.flags |= EXCHGID4_FLAG_USE_PNFS_DS;
        msg.rpc_argp = &calldata->args;
        msg.rpc_resp = &calldata->res;