Message ID | 20241212153539.1192900-1-arnd@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | btrfs: fix stack size warning in btrfs_test_delayed_refs() | expand |
On Thu, Dec 12, 2024 at 04:35:32PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The newly added code has a btrfs_transaction structure on the stack, > which makes it somewhat too large for 32-bit kernels: > > fs/btrfs/tests/delayed-refs-tests.c: In function 'btrfs_test_delayed_refs': > fs/btrfs/tests/delayed-refs-tests.c:1012:1: error: the frame size of 1088 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > 1012 | } > | ^ > > Change this to a dynamic allocation instead. > > Fixes: fa3dda44871b ("btrfs: selftests: add delayed ref self test cases") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Thanks, this was fixed last week but was not updated in the branch pulled by linux-next.
diff --git a/fs/btrfs/tests/delayed-refs-tests.c b/fs/btrfs/tests/delayed-refs-tests.c index 9b469791c20a..86333521b94a 100644 --- a/fs/btrfs/tests/delayed-refs-tests.c +++ b/fs/btrfs/tests/delayed-refs-tests.c @@ -978,7 +978,6 @@ static int select_delayed_refs_test(struct btrfs_trans_handle *trans) int btrfs_test_delayed_refs(u32 sectorsize, u32 nodesize) { - struct btrfs_transaction transaction; struct btrfs_trans_handle trans; struct btrfs_fs_info *fs_info; int ret; @@ -991,8 +990,10 @@ int btrfs_test_delayed_refs(u32 sectorsize, u32 nodesize) return -ENOMEM; } btrfs_init_dummy_trans(&trans, fs_info); - btrfs_init_dummy_transaction(&transaction, fs_info); - trans.transaction = &transaction; + trans.transaction = kmalloc(sizeof(*trans.transaction), GFP_KERNEL); + if (!trans.transaction) + goto out; + btrfs_init_dummy_transaction(trans.transaction, fs_info); ret = simple_tests(&trans); if (!ret) { @@ -1007,6 +1008,8 @@ int btrfs_test_delayed_refs(u32 sectorsize, u32 nodesize) if (!ret) ret = select_delayed_refs_test(&trans); + kfree(trans.transaction); +out: btrfs_free_dummy_fs_info(fs_info); return ret; }