Hi Assf,

I believe that we need the following change in the code that you changed last year. I am starting to test pNFS and if the client has any flags on in the pNFS mask we should check the clients request.

 

diff --git a/src/Protocols/NFS/nfs4_op_exchange_id.c b/src/Protocols/NFS/nfs4_op_exchange_id.c

index 15bb386fe..a6b730308 100644

--- a/src/Protocols/NFS/nfs4_op_exchange_id.c

+++ b/src/Protocols/NFS/nfs4_op_exchange_id.c

@@ -172,7 +172,7 @@ enum nfs_req_result nfs4_op_exchange_id(struct nfs_argop4 *op,

 

        /* If client did not ask for pNFS related server roles than just set

           server roles */

-       if ((arg_EXCHANGE_ID4->eia_flags & EXCHGID4_FLAG_MASK_PNFS) == 0) {

+       if (arg_EXCHANGE_ID4->eia_flags & EXCHGID4_FLAG_MASK_PNFS) {

                if (nfs_param.nfsv4_param.pnfs_mds)

                        server_pnfs_flags |= EXCHGID4_FLAG_USE_PNFS_MDS;

                else

 

On another issue if you are familiar   with pNFS code, it is checking the pNFS flags only in the NFSv4 block

I think it should be at the  EXPORT block.

 

NFSv4

{

  PNFS_MDS = true;

   PNFS_DS = true;

}

 

Thanks, Marc.