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 > 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); > } >