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: <20240812063143.3806677-1-hch@lst.de>
Date: Mon, 12 Aug 2024 08:30:59 +0200
From: Christoph Hellwig <hch@....de>
To: Chandan Babu R <chandan.babu@...cle.com>,
	Matthew Wilcox <willy@...radead.org>
Cc: "Darrick J. Wong" <djwong@...nel.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	linux-xfs@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	linux-fsdevel@...r.kernel.org
Subject: conver XFS perag lookup to xarrays

Hi all,

for a project with the pending RT group code in XFS that reuses the basic
perag concepts I'd much prefer to use xarrays over the old radix tree for
nicer iteration semantics.

This series converts the perag code to xarrays to keep them in sync and
throws in the use of kfree_rcu_mightsleep in the same area.

To easily allow porting libxfs code to userspace this can't use xa_set
which requires stealing bits from the pointer, and as part of
investigating that I realized that the xa_set API is generally not so
nice for callers for which a pre-existing entry in the xarray is
always an error.  Thus the first patch adds a new xa_set wrapper that
treats an existing entry as an error and avoids the need to use of
xa_err.  It could also be used to clean up a significant number of
existing callers.

Diffstat:
 fs/xfs/libxfs/xfs_ag.c |   93 ++++---------------------------------------------
 fs/xfs/libxfs/xfs_ag.h |   14 -------
 fs/xfs/xfs_icache.c    |   77 ++++++++++++++++++++++++++--------------
 fs/xfs/xfs_mount.h     |    3 -
 fs/xfs/xfs_super.c     |    3 -
 fs/xfs/xfs_trace.h     |    3 -
 include/linux/xarray.h |    1 
 lib/xarray.c           |   33 +++++++++++++++++
 8 files changed, 96 insertions(+), 131 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ