2009-06-29 06:50:52

by Tao Guo

[permalink] [raw]
Subject: Re: [pnfs] [PATCH 1/2]pnfs: replace lease_bitmap to length 3, instead of 2.

I think you are right, thanks.
shame to make such a mistake -_-|||

But I think giving the explicit size will make the code much more clea=
r.
what about other gurus' ideas?
---

diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
index b1e3ce2..8cdccc0 100644
--- a/fs/nfs/nfs4xdr.c
+++ b/fs/nfs/nfs4xdr.c
@@ -2619,7 +2619,7 @@ static int
nfs4_xdr_enc_setclientid_confirm(struct rpc_rqst *req, __be32 *p, str
struct compound_hdr hdr =3D {
.nops =3D 0,
};
- const u32 lease_bitmap[2] =3D { FATTR4_WORD0_LEASE_TIME, 0 };
+ const u32 lease_bitmap[3] =3D { FATTR4_WORD0_LEASE_TIME, 0, 0 };

xdr_init_encode(&xdr, &req->rq_snd_buf, p);
encode_compound_hdr(&xdr, req, &hdr);
@@ -2770,7 +2770,7 @@ static int nfs4_xdr_enc_get_lease_time(struct
rpc_rqst *req, uint32_t *p,
struct compound_hdr hdr =3D {
.minorversion =3D clp->cl_minorversion,
};
- const u32 lease_bitmap[2] =3D { FATTR4_WORD0_LEASE_TIME, 0 };
+ const u32 lease_bitmap[3] =3D { FATTR4_WORD0_LEASE_TIME, 0, 0 };

xdr_init_encode(&xdr, &req->rq_snd_buf, p);
encode_compound_hdr(&xdr, req, &hdr);


On Mon, Jun 29, 2009 at 2:13 PM, Tigran
Mkrtchyan<[email protected]> wrote:
>
>
> On 06/29/2009 04:16 AM, Tao Guo wrote:
>>
>> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
>> index b1e3ce2..231ad24 100644
>> --- a/fs/nfs/nfs4xdr.c
>> +++ b/fs/nfs/nfs4xdr.c
>> @@ -2619,7 +2619,7 @@ static int
>> nfs4_xdr_enc_setclientid_confirm(struct rpc_rqst *req, __be32 *p, st=
r
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct compound_hdr hdr =3D {
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .nops =C2=A0=
=3D 0,
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 };
>> - =C2=A0 =C2=A0 =C2=A0 const u32 lease_bitmap[2] =3D { FATTR4_WORD0_=
LEASE_TIME, 0 };
>> + =C2=A0 =C2=A0 =C2=A0 const u32 lease_bitmap[3] =3D { FATTR4_WORD0_=
LEASE_TIME, 0, 0 };
>>
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 xdr_init_encode(&xdr,&req->rq_snd_buf, p=
);
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 encode_compound_hdr(&xdr, req,&hdr);
>> @@ -2770,7 +2770,7 @@ static int nfs4_xdr_enc_get_lease_time(struct
>> rpc_rqst *req, uint32_t *p,
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct compound_hdr hdr =3D {
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .minorversio=
n =3D clp->cl_minorversion,
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 };
>> - =C2=A0 =C2=A0 =C2=A0 const u32 lease_bitmap[2] =3D { FATTR4_WORD0_=
LEASE_TIME, 0 };
>> + =C2=A0 =C2=A0 =C2=A0 const u32 lease_bitmap[2] =3D { FATTR4_WORD0_=
LEASE_TIME, 0, 0 };
>
> probably you have to increase array size as well. In general there is=
no
> need to do it twice :
>
> const u32 lease_bitmap[] =3D { FATTR4_WORD0_LEASE_TIME, 0, 0 };
>
> will do the right think.
>
> Kernel gurus may correct me if I am wrong.
>
> Regards,
> =C2=A0 =C2=A0 =C2=A0 =C2=A0Tigran.
>
>>
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 xdr_init_encode(&xdr,&req->rq_snd_buf, p=
);
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 encode_compound_hdr(&xdr, req,&hdr);
>>
>
> --
> _____________________________________________________________________=
___
> Tigran Mkrtchyan =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 DESY, IT,
> [email protected] =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Notkestrasse 85,
> Tel: + 49 40 89983946 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Hamburg 22607,
> Fax: + 49 40 89984429 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Germany.
>



--=20
tao.