]> Gentwo Git Trees - linux/.git/commit
NFSD: Implement large extent array support in pNFS
authorSergey Bashirov <sergeybashirov@gmail.com>
Mon, 21 Jul 2025 18:40:55 +0000 (21:40 +0300)
committerChuck Lever <chuck.lever@oracle.com>
Sun, 21 Sep 2025 23:24:50 +0000 (19:24 -0400)
commitf963cf2b91a30b5614c514f3ad53ca124cb65280
tree6f6fe271b9eb8a321eb8ee2c85167c5baa6121f7
parent6bf1be3399e2635805074954011cb55745569788
NFSD: Implement large extent array support in pNFS

When pNFS client in the block or scsi layout mode sends layoutcommit
to MDS, a variable length array of modified extents is supplied within
the request. This patch allows the server to accept such extent arrays
if they do not fit within single memory page.

The issue can be reproduced when writing to a 1GB file using FIO with
O_DIRECT, 4K block and large I/O depth without preallocation of the
file. In this case, the server returns NFSERR_BADXDR to the client.

Co-developed-by: Konstantin Evtushenko <koevtushenko@yandex.com>
Signed-off-by: Konstantin Evtushenko <koevtushenko@yandex.com>
Signed-off-by: Sergey Bashirov <sergeybashirov@gmail.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/blocklayout.c
fs/nfsd/blocklayoutxdr.c
fs/nfsd/blocklayoutxdr.h
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4xdr.c
fs/nfsd/pnfs.h
fs/nfsd/xdr4.h