[pnfs] [PATCH] set deviceid with fsid

Marc Eshel eshel at almaden.ibm.com
Tue Mar 4 12:18:10 EST 2008


From: Marc Eshel <eshel at almaden.ibm.com>


---

 fs/nfsd/nfs4proc.c |    2 +-
 fs/nfsd/nfs4xdr.c  |    3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index be017b2..b4ba964 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -1199,7 +1199,7 @@ nfsd4_getdevinfo(struct svc_rqst *rqstp,
 {
 	struct super_block *sb;
 	struct svc_export *exp = NULL;
-	u32 fsidv = 0;	/* FIXME: extract the fsid from the device ID arg */
+	u32 fsidv = gdp->gd_devid.pnfs_fsid;
 	int status;
 
 	dprintk("%s: type %u dev_id %llx:%llx maxcnt %u\n",
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 6705fbc..d1a1774 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -3224,7 +3224,7 @@ nfsd4_encode_devlist_iterator(struct nfsd4_compoundres *resp,
 		/* TODO: Need to encode an identifier that uniquely
 		 * identifies the export. (fsid)
 		 */
-		WRITE64(0LL);			/* devid major */
+		WRITE64((__be64)gdevl->gd_fhp->fh_export->ex_fsid);
 		WRITE64(iter_arg.devid);	/* devid minor */
 		ADJUST_ARGS();
 
@@ -3470,6 +3470,7 @@ nfsd4_encode_layoutget(struct nfsd4_compoundres *resp,
 	args.minlength = lgp->lg_minlength;
 	args.seg = lgp->lg_seg;
 	args.fh = &lgp->lg_fhp->fh_handle;
+	args.fsid = lgp->lg_fhp->fh_export->ex_fsid;
 
 	/* Set xdr info so file system can encode layout */
 	args.xdr.p   = resp->p;


More information about the pNFS mailing list