Re: [PATCH] nfs: simplify and guarantee owner uniqueness.

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

 



On Sun, 22 Sep 2024, Jon Hunter wrote:
> Hi Neil,
> 
> On 20/09/2024 04:02, NeilBrown wrote:
> > On Thu, 19 Sep 2024, Steven Price wrote:
> >> On 19/09/2024 02:29, NeilBrown wrote:
> >>> On Wed, 18 Sep 2024, Steven Price wrote:
> >>>> Hi Neil,
> >>>>
> >>>> (Dropping the list/others due to the attachment)
> >>>
> >>> (re-adding others now - thanks for the attachment).
> >>>
> >>>>
> >>>> Attached, this is booting a kernel compiled from 00fd839ca761 ("nfs:
> >>>> simplify and guarantee owner uniqueness.") which uses an NFS root with a
> >>>> Debian bullseye userspace.
> >>>
> >>> This shows that the owner_id was always different - or almost always.
> >>> Once it repeated we got an error because the seqid kept increasing.
> >>> This is because the xdr encoding is broken.
> >>>
> >>> Please apply this incremental patch and confirm that it works now.
> >>
> >> Thanks, I've tested the below and I don't see NFS errors any more.
> >>
> >> Tested-by: Steven Price <steven.price@xxxxxxx>
> > 
> > Thanks Steve.
> > 
> > Anna: could you please squash this fix in to the commit?
> > Jon: could you please confirm that this fixes your problem too.
> > 
> > Thanks,
> > NeilBrown
> > 
> > diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> > index 1aaf908acc5d..88bcbcba1381 100644
> > --- a/fs/nfs/nfs4xdr.c
> > +++ b/fs/nfs/nfs4xdr.c
> > @@ -1429,7 +1429,7 @@ static inline void encode_openhdr(struct xdr_stream *xdr, const struct nfs_opena
> >   	*p++ = cpu_to_be32(28);
> >   	p = xdr_encode_opaque_fixed(p, "open id:", 8);
> >   	*p++ = cpu_to_be32(arg->server->s_dev);
> > -	xdr_encode_hyper(p, arg->id.uniquifier);
> > +	p = xdr_encode_hyper(p, arg->id.uniquifier);
> >   	xdr_encode_hyper(p, arg->id.create_time);
> >   }
> 
> 
> Works for me!

Thanks Jon.
Anna has updated the patch so the fixed version is what will land
upstream.

NeilBrown





[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