lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250630183537.196479-1-sergeybashirov@gmail.com>
Date: Mon, 30 Jun 2025 21:35:25 +0300
From: Sergey Bashirov <sergeybashirov@...il.com>
To: Christoph Hellwig <hch@...radead.org>,
	Trond Myklebust <trondmy@...nel.org>,
	Anna Schumaker <anna@...nel.org>
Cc: linux-nfs@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	Konstantin Evtushenko <koevtushenko@...dex.com>,
	Sergey Bashirov <sergeybashirov@...il.com>
Subject: [PATCH 0/4] pNFS: Fix layoutcommit handling in block/scsi driver

Depending on the allocation scheme and size, some files may have a large
number of extents. This series fixes the handling of large extent arrays
and allows the pNFS client to split large layoutcommits that exceed the
maximum RPC size accepted by the server into multiple requests.

Manually tested for the block layout driver:
sudo mount.nfs4 -v -o minorversion=2,sync,hard,noatime,  \
                      rsize=16384,wsize=16384,timeo=600, \
                      retrans=2 192.168.1.1:/mnt/export /mnt/pnfs
sudo fio --name=test --filename=/mnt/pnfs/test6.raw --size=10M \
         --rw=randwrite --ioengine=libaio --direct=1 --bs=4k   \
         --iodepth=128 --fallocate=none --verify=sha1
Trace:
    fio-1580  [012]  1258.595866: bl_ext_tree_prepare_commit:
        ret=-28, found 372 ranges, lwb=1531903, not all ranges encoded
    fio-1580  [012]  1258.609534: bl_ext_tree_prepare_commit:
        ret=-28, found 372 ranges, lwb=3104767, not all ranges encoded
    fio-1580  [012]  1258.655556: bl_ext_tree_prepare_commit:
        ret=-28, found 372 ranges, lwb=4644863, not all ranges encoded
    fio-1580  [012]  1258.699603: bl_ext_tree_prepare_commit:
        ret=-28, found 372 ranges, lwb=6176767, not all ranges encoded
    fio-1580  [012]  1258.743650: bl_ext_tree_prepare_commit:
        ret=-28, found 372 ranges, lwb=7708671, not all ranges encoded
    fio-1580  [012]  1258.787605: bl_ext_tree_prepare_commit:
        ret=-28, found 372 ranges, lwb=9236479, not all ranges encoded
    fio-1580  [012]  1258.817439: bl_ext_tree_prepare_commit:
        ret=0, found 295 ranges, lwb=10485759

Signed-off-by: Sergey Bashirov <sergeybashirov@...il.com>
---
Sergey Bashirov (4):
  pNFS: Fix uninited ptr deref in block/scsi layout
  pNFS: Fix extent encoding in block/scsi layout
  pNFS: Add prepare commit trace to block/scsi layout
  pNFS: Handle RPC size limit for layoutcommits

 fs/nfs/blocklayout/extent_tree.c | 104 +++++++++++++++++++++++++++----
 fs/nfs/nfs4trace.c               |   1 +
 fs/nfs/nfs4trace.h               |  34 ++++++++++
 fs/nfs/pnfs.c                    |  11 +++-
 4 files changed, 134 insertions(+), 16 deletions(-)

-- 
2.43.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ