On Wed, Aug 8, 2012 at 8:49 PM, Bryan Schumaker <bjschuma@xxxxxxxxxx> wrote: > On 08/07/2012 09:49 PM, Peng Tao wrote: >> After commit e38eb650 (NFS: set_pnfs_layoutdriver() from >> nfs4_proc_fsinfo()), set_pnfs_layoutdriver() is called inside >> nfs4_proc_fsinfo(), but pnfs_blksize is not set. It causes setting >> blocklayoutdriver failure and pnfsblock mount failure. >> >> Cc: Bryan Schumaker <bjschuma@xxxxxxxxxx> >> Signed-off-by: Peng Tao <bergwolf@xxxxxxxxx> >> --- >> fs/nfs/nfs4proc.c | 5 ++++- >> 1 files changed, 4 insertions(+), 1 deletions(-) >> >> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c >> index 78b2163..299c311 100644 >> --- a/fs/nfs/nfs4proc.c >> +++ b/fs/nfs/nfs4proc.c >> @@ -3362,8 +3362,11 @@ static int nfs4_proc_fsinfo(struct nfs_server *server, struct nfs_fh *fhandle, s >> >> nfs_fattr_init(fsinfo->fattr); >> error = nfs4_do_fsinfo(server, fhandle, fsinfo); >> - if (error == 0) >> + if (error == 0) { >> + /* block layout checks this! */ >> + server->pnfs_blksize = fsinfo->blksize; > > fs/nfs/client.c:nfs_server_set_fsinfo() also sets this field, so I'm surprised there was a problem. You should remove the same line from nfs_server_set_fsinfo() if you're going to set it here. Before commit e38eb650, nfs_server_set_fsinfo() is called before setting layoutdriver. And now it is called after. And block layout driver checks pnfs_blksize so it gets broken. I will remove the line in nfs_server_set_fsinfo() and resend the patch. -- Thanks, Tao -- 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