Re: [pnfs] [PATCH]pnfsd: make pnfs server return layout_blksize when the client asks for it

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tao,

I'd appreciate if you could send patches in plain text, otherwise
they are much harder to apply.

Fred: can you please verify this in your environment since I think that
only the block layout relies on that at the moment.

Please see comments below.

On Jun. 26, 2009, 6:04 +0300, Tao Guo <glorioustao@xxxxxxxxx> wrote:
> commit 717f53b333a8c4c5238b1192640ad5078c683f5f
> Author: Tao Guo <guotao@xxxxxxxxxxxx <mailto:guotao@xxxxxxxxxxxx>>
> Date:   Fri Jun 26 10:46:13 2009 +0800
> 
>     pnfsd: make pnfs server return layout_blksize when the client asks
> for it.
>    
>     pnfs: replace lease_bitmap to length 3, instead of 2.
>    
>     Referred to commit 3e8c8312e4b...
> 
> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> index 95b7387..f264c15 100644
> --- a/fs/nfs/nfs4xdr.c
> +++ b/fs/nfs/nfs4xdr.c
> @@ -2573,7 +2573,7 @@ static int nfs4_xdr_enc_setclientid_confirm(struct
> rpc_rqst *req, __be32 *p, str
>      struct compound_hdr hdr = {
>          .nops    = 0,
>      };
> -    const u32 lease_bitmap[2] = { FATTR4_WORD0_LEASE_TIME, 0 };
> +    const u32 lease_bitmap[3] = { FATTR4_WORD0_LEASE_TIME, 0, 0 };
>  
>      xdr_init_encode(&xdr, &req->rq_snd_buf, p);
>      encode_compound_hdr(&xdr, req, &hdr);

a. same should also be done in nfs4_xdr_enc_get_lease_time
b. please submit as separate patch as it fixes a bug independently.

> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
> index 6959787..2854576 100644
> --- a/fs/nfsd/nfs4xdr.c
> +++ b/fs/nfsd/nfs4xdr.c
> @@ -2345,6 +2345,13 @@ out_acl:
>              WRITE32(0);  /* length */
>      }
>  #endif /* CONFIG_PNFSD */
> +
> +    if (bmval2 & FATTR4_WORD2_LAYOUT_BLKSIZE) {
> +        if ((buflen -= 4) < 0)
> +            goto out_resource;
> +        WRITE32(stat.blksize);
> +    }
> +

let's put this inside the #ifdef CONFIG_PNFSD block for now.
I'm not 100% sure about returning stat.blksize for the layout_blksize
but that will do for now.

Thanks!

Benny

>      if (bmval2 & FATTR4_WORD2_SUPPATTR_EXCLCREAT) {
>          WRITE32(3);
>          WRITE32(NFSD_SUPPATTR_EXCLCREAT_WORD0);
> diff --git a/include/linux/nfsd/nfsd.h b/include/linux/nfsd/nfsd.h
> index 5177c54..056e012 100644
> --- a/include/linux/nfsd/nfsd.h
> +++ b/include/linux/nfsd/nfsd.h
> @@ -382,7 +382,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)
>  
>  static inline u32 nfsd_suppattrs0(u32 minorversion)
>  {
> -- 
> tao.
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> pNFS mailing list
> pNFS@xxxxxxxxxxxxx
> http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
--
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

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux