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

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

 



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





[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