From: Andy Adamson <andros@xxxxxxxxxx> Squash into "pnfs: filelayout: device ops" Signed-off-by: Andy Adamson <andros@xxxxxxxxxx> --- fs/nfs/nfs4filelayoutdev.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/fs/nfs/nfs4filelayoutdev.c b/fs/nfs/nfs4filelayoutdev.c index b41f437..b04c9d9 100644 --- a/fs/nfs/nfs4filelayoutdev.c +++ b/fs/nfs/nfs4filelayoutdev.c @@ -173,18 +173,16 @@ nfs4_pnfs_ds_create(struct nfs_server *mds_srv, struct nfs4_pnfs_ds *ds) clp = tmp.nfs_client; - /* Set exchange id and create session flags and setup session */ + /* Ask for only the EXCHGID4_FLAG_USE_PNFS_DS pNFS role */ dprintk("%s EXCHANGE_ID for clp %p\n", __func__, clp); clp->cl_exchange_flags = EXCHGID4_FLAG_USE_PNFS_DS; + err = nfs4_recover_expired_lease(clp); if (!err) err = nfs4_check_client_ready(clp); if (err) goto out_put; - /* mask out the server's MDS capability flag */ - clp->cl_exchange_flags &= ~EXCHGID4_FLAG_USE_PNFS_MDS; - if (!(clp->cl_exchange_flags & EXCHGID4_FLAG_USE_PNFS_DS)) { printk(KERN_INFO "ip:port %s is not a pNFS Data Server\n", ds->r_addr); @@ -193,6 +191,12 @@ nfs4_pnfs_ds_create(struct nfs_server *mds_srv, struct nfs4_pnfs_ds *ds) } /* + * Mask the (possibly) returned EXCHGID4_FLAG_USE_PNFS_MDS pNFS role + * The is_ds_only_session depends on this. + */ + clp->cl_exchange_flags &= ~EXCHGID4_FLAG_USE_PNFS_MDS; + + /* * Set DS lease equal to the MDS lease, renewal is scheduled in * create_session */ -- 1.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html