2009-06-29 02:23:13

by Tao Guo

[permalink] [raw]
Subject: [pnfs][PATCH 2/2]pnfsd: make pnfs server return layout_blksize when the client asks for it

diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 1f4e06f..a5a2c89 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2376,6 +2376,12 @@ out_acl:
} else
WRITE32(0); /* length */
}
+
+ if (bmval2 & FATTR4_WORD2_LAYOUT_BLKSIZE) {
+ if ((buflen -= 4) < 0)
+ goto out_resource;
+ WRITE32(stat.blksize);
+ }
#endif /* CONFIG_PNFSD */
if (bmval2 & FATTR4_WORD2_SUPPATTR_EXCLCREAT) {
WRITE32(3);
diff --git a/include/linux/nfsd/nfsd.h b/include/linux/nfsd/nfsd.h
index 75453de..d765487 100644
--- a/include/linux/nfsd/nfsd.h
+++ b/include/linux/nfsd/nfsd.h
@@ -378,7 +378,8 @@ extern struct timeval nfssvc_boot;
#endif /* CONFIG_PNFSD */

#define NFSD4_1_SUPPORTED_ATTRS_WORD2 \
- (NFSD4_SUPPORTED_ATTRS_WORD2 | FATTR4_WORD2_SUPPATTR_EXCLCREAT)
+ (NFSD4_SUPPORTED_ATTRS_WORD2 | FATTR4_WORD2_SUPPATTR_EXCLCREAT | \
+ FATTR4_WORD2_LAYOUT_BLKSIZE)

#if defined(CONFIG_NFSD_V4_1)


--
tao.