Hi
on Linux NFSv4.1 server, nfsd4_exchange_id() is used for creating a
new client incarnation or updating a confirmed client incarnation. if
try to update a confirmed incarnation, EXCHGID4_FLAG_CONFIRMED_R
should be set in eir_flags according to section 18.35.3, RFC5661.
but I found EXCHGID4_FLAG_CONFIRMED_R is cleared by "clid->flags =
new->cl_exchange_flags;", which is in nfsd4_set_ex_flags() called by
nfsd4_exchange_id().
so the sematics of RFC5661 is broken? am I correct?
The code that I browse was newly cloned from
git://linux-nfs.org/~bhalevy/linux-pnfs.git.
--
Sid
On Sat, Jun 11, 2011 at 03:54:56PM +0800, Sid Moore wrote:
> Hi
>
> on Linux NFSv4.1 server, nfsd4_exchange_id() is used for creating a
> new client incarnation or updating a confirmed client incarnation. if
> try to update a confirmed incarnation, EXCHGID4_FLAG_CONFIRMED_R
> should be set in eir_flags according to section 18.35.3, RFC5661.
>
> but I found EXCHGID4_FLAG_CONFIRMED_R is cleared by "clid->flags =
> new->cl_exchange_flags;", which is in nfsd4_set_ex_flags() called by
> nfsd4_exchange_id().
>
> so the sematics of RFC5661 is broken? am I correct?
On a quick glance.... I think you're correct. Patch welcomed.
--b.