Thread (8 messages) 8 messages, 5 authors, 2021-07-15

Re: [PATCH v4][next] xfs: Replace one-element arrays with flexible-array members

From: Chen, Rong A <hidden>
Date: 2021-07-14 09:28:04
Also in: linux-hardening, lkml


On 4/14/2021 12:53 AM, Christoph Hellwig wrote:
On Mon, Apr 12, 2021 at 08:48:08AM -0700, Darrick J. Wong wrote:
quoted
A couple of revisions ago I specifically asked Gustavo to create these
'silly' sizeof helpers to clean up...
quoted
quoted
-					(sizeof(struct xfs_efd_log_item) +
-					(XFS_EFD_MAX_FAST_EXTENTS - 1) *
-					sizeof(struct xfs_extent)),
-					0, 0, NULL);
+					 struct_size((struct xfs_efd_log_item *)0,
+					 efd_format.efd_extents,
+					 XFS_EFD_MAX_FAST_EXTENTS),
...these even uglier multiline statements.  I was also going to ask for
these kmem cache users to get cleaned up.  I'd much rather look at:

	xfs_efi_zone = kmem_cache_create("xfs_efi_item",
				sizeof_xfs_efi(XFS_EFI_MAX_FAST_EXTENTS), 0);
	if (!xfs_efi_zone)
		goto the_drop_zone;

even if it means another static inline.
Which doesn't really work with struct_size or rather leads to a mess
like the above as struct_size really wants a variable and not just a
type.  Making it really nasty for both allocations and creating slab
caches.  I tried to find a workaround for that, but that makes the
compiler unhappy based its inlining heuristics.

Anyway, a lot of the helpers are pretty silly as they duplicate stuff
without cleaning up the underlying mess.  I tried to sort much of this
out here, still WIP:

http://git.infradead.org/users/hch/xfs.git/shortlog/refs/heads/xfs-array-size
Hi xfs maintainers,

Kindly ping, is there any new progress on this patch series?

Best Regards,
Rong Chen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help