Linux EXT4 FS development
 help / color / mirror / Atom feed
* [tytso-ext4:pu 16/50] fs/ext4/namei-test.c:2229:1: warning: the frame size of 1856 bytes is larger than 1536 bytes
@ 2026-11-12 16:44 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-11-12 16:44 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: oe-kbuild-all, linux-ext4

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git pu
head:   246d715a48c25a74ac372dda5e10d8f69f89b50a
commit: 5fd9232f9345a5b0a0a0e9132dc439658d2a42db [16/50] ext4: enable full feature coverage in fs/ext4/.kunitconfig
config: xtensa-allmodconfig (https://download.01.org/0day-ci/archive/20261112/202611121731.hU760S80-lkp@intel.com/config)
compiler: xtensa-linux-gcc (GCC) 16.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261112/202611121731.hU760S80-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202611121731.hU760S80-lkp@intel.com/

All warnings (new ones prefixed by >>):

   fs/ext4/namei-test.c: In function 'test_namei_rename_and_exchange':
>> fs/ext4/namei-test.c:2229:1: warning: the frame size of 1856 bytes is larger than 1536 bytes [-Wframe-larger-than=]
    2229 | }
         | ^


vim +2229 fs/ext4/namei-test.c

171d9555beee6b Theodore Ts'o 2026-11-05  2082  
171d9555beee6b Theodore Ts'o 2026-11-05  2083  /*
171d9555beee6b Theodore Ts'o 2026-11-05  2084   * Test 14: Rename, overwrite rename, cross-directory subdirectory rename,
171d9555beee6b Theodore Ts'o 2026-11-05  2085   * RENAME_EXCHANGE (ext4_cross_rename), and slow symlink block initialization
171d9555beee6b Theodore Ts'o 2026-11-05  2086   * (ext4_init_symlink_block_test).
171d9555beee6b Theodore Ts'o 2026-11-05  2087   */
171d9555beee6b Theodore Ts'o 2026-11-05  2088  static void test_namei_rename_and_exchange(struct kunit *test)
171d9555beee6b Theodore Ts'o 2026-11-05  2089  {
171d9555beee6b Theodore Ts'o 2026-11-05  2090  	struct namei_test_ctx *ctx = test->priv;
171d9555beee6b Theodore Ts'o 2026-11-05  2091  	struct inode *root_dir = get_mock_inode(ctx, TEST_ROOT_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2092  	struct inode *dir1 = get_mock_inode(ctx, TEST_DIR_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2093  	struct inode *dir2 = get_mock_inode(ctx, TEST_DIR2_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2094  	struct inode *subdir = get_mock_inode(ctx, TEST_SUBDIR_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2095  	struct inode *file1 = get_mock_inode(ctx, TEST_FILE1_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2096  	struct inode *file2 = get_mock_inode(ctx, TEST_FILE2_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2097  	struct inode *symlink_inode = get_mock_inode(ctx, TEST_FILE3_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2098  	struct dentry d1_dentry, d2_dentry;
171d9555beee6b Theodore Ts'o 2026-11-05  2099  	struct dentry old_dentry, new_dentry, sub_dentry;
171d9555beee6b Theodore Ts'o 2026-11-05  2100  	struct buffer_head *bh;
171d9555beee6b Theodore Ts'o 2026-11-05  2101  	struct ext4_dir_entry_2 *de = NULL;
171d9555beee6b Theodore Ts'o 2026-11-05  2102  	const char *sym_target = "/very/long/symlink/target/path/for/ext4/test";
171d9555beee6b Theodore Ts'o 2026-11-05  2103  	struct fscrypt_str disk_link = {
171d9555beee6b Theodore Ts'o 2026-11-05  2104  		.name = (unsigned char *)sym_target,
171d9555beee6b Theodore Ts'o 2026-11-05  2105  		.len = strlen(sym_target) + 1,
171d9555beee6b Theodore Ts'o 2026-11-05  2106  	};
171d9555beee6b Theodore Ts'o 2026-11-05  2107  	int err;
171d9555beee6b Theodore Ts'o 2026-11-05  2108  
171d9555beee6b Theodore Ts'o 2026-11-05  2109  	ctx->es.s_feature_ro_compat |=
171d9555beee6b Theodore Ts'o 2026-11-05  2110  		cpu_to_le32(EXT4_FEATURE_RO_COMPAT_METADATA_CSUM);
171d9555beee6b Theodore Ts'o 2026-11-05  2111  
171d9555beee6b Theodore Ts'o 2026-11-05  2112  	KUNIT_ASSERT_EQ(test, ext4_init_new_dir(NULL, root_dir, dir1), 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2113  	KUNIT_ASSERT_EQ(test, ext4_init_new_dir(NULL, root_dir, dir2), 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2114  	KUNIT_ASSERT_EQ(test, ext4_init_new_dir(NULL, dir1, subdir), 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2115  	set_nlink(dir1, 3); /* '.', '..', and subdir */
171d9555beee6b Theodore Ts'o 2026-11-05  2116  	set_nlink(dir2, 2);
171d9555beee6b Theodore Ts'o 2026-11-05  2117  
171d9555beee6b Theodore Ts'o 2026-11-05  2118  	init_mock_dentry(&d1_dentry, NULL, "dir1", dir1, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2119  	init_mock_dentry(&d2_dentry, NULL, "dir2", dir2, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2120  
171d9555beee6b Theodore Ts'o 2026-11-05  2121  	/* Invalid rename flags are rejected with -EINVAL */
171d9555beee6b Theodore Ts'o 2026-11-05  2122  	init_mock_dentry(&old_dentry, &d1_dentry, "f1", file1, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2123  	init_mock_dentry(&new_dentry, &d1_dentry, "f1_new", NULL, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2124  	KUNIT_EXPECT_EQ(test,
171d9555beee6b Theodore Ts'o 2026-11-05  2125  		ext4_dir_inode_operations.rename(&nop_mnt_idmap, dir1,
171d9555beee6b Theodore Ts'o 2026-11-05  2126  			&old_dentry, dir1, &new_dentry, ~0U), -EINVAL);
171d9555beee6b Theodore Ts'o 2026-11-05  2127  
171d9555beee6b Theodore Ts'o 2026-11-05  2128  	/* Add f1 and f2 in dir1, and subdir in dir1 */
171d9555beee6b Theodore Ts'o 2026-11-05  2129  	KUNIT_ASSERT_EQ(test,
171d9555beee6b Theodore Ts'o 2026-11-05  2130  			ext4_add_entry_test(NULL, &old_dentry, file1), 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2131  	init_mock_dentry(&sub_dentry, &d1_dentry, "sub", subdir, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2132  	KUNIT_ASSERT_EQ(test,
171d9555beee6b Theodore Ts'o 2026-11-05  2133  			ext4_add_entry_test(NULL, &sub_dentry, subdir), 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2134  
171d9555beee6b Theodore Ts'o 2026-11-05  2135  	/* 1) Same-directory rename: f1 -> f1_renamed */
171d9555beee6b Theodore Ts'o 2026-11-05  2136  	err = ext4_dir_inode_operations.rename(&nop_mnt_idmap, dir1,
171d9555beee6b Theodore Ts'o 2026-11-05  2137  					       &old_dentry, dir1, &new_dentry,
171d9555beee6b Theodore Ts'o 2026-11-05  2138  					       0);
171d9555beee6b Theodore Ts'o 2026-11-05  2139  	KUNIT_ASSERT_EQ(test, err, 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2140  	KUNIT_EXPECT_NULL(test,
171d9555beee6b Theodore Ts'o 2026-11-05  2141  		ext4_find_entry_test(dir1, &old_dentry.d_name, &de, NULL));
171d9555beee6b Theodore Ts'o 2026-11-05  2142  	bh = ext4_find_entry_test(dir1, &new_dentry.d_name, &de, NULL);
171d9555beee6b Theodore Ts'o 2026-11-05  2143  	KUNIT_ASSERT_FALSE(test, IS_ERR_OR_NULL(bh));
171d9555beee6b Theodore Ts'o 2026-11-05  2144  	KUNIT_EXPECT_EQ(test, le32_to_cpu(de->inode), TEST_FILE1_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2145  	brelse(bh);
171d9555beee6b Theodore Ts'o 2026-11-05  2146  
171d9555beee6b Theodore Ts'o 2026-11-05  2147  	/* 2) Overwrite rename: f1_renamed overwrites existing f2 in dir1 */
171d9555beee6b Theodore Ts'o 2026-11-05  2148  	init_mock_dentry(&old_dentry, &d1_dentry, "f1_new", file1, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2149  	init_mock_dentry(&new_dentry, &d1_dentry, "f2", file2, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2150  	KUNIT_ASSERT_EQ(test,
171d9555beee6b Theodore Ts'o 2026-11-05  2151  			ext4_add_entry_test(NULL, &new_dentry, file2), 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2152  	ctx->orphan_add_calls = 0;
171d9555beee6b Theodore Ts'o 2026-11-05  2153  	err = ext4_dir_inode_operations.rename(&nop_mnt_idmap, dir1,
171d9555beee6b Theodore Ts'o 2026-11-05  2154  					       &old_dentry, dir1, &new_dentry,
171d9555beee6b Theodore Ts'o 2026-11-05  2155  					       0);
171d9555beee6b Theodore Ts'o 2026-11-05  2156  	KUNIT_ASSERT_EQ(test, err, 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2157  	KUNIT_EXPECT_EQ(test, file2->i_nlink, 0U);
171d9555beee6b Theodore Ts'o 2026-11-05  2158  	KUNIT_EXPECT_EQ(test, ctx->orphan_add_calls, 1U);
171d9555beee6b Theodore Ts'o 2026-11-05  2159  	KUNIT_EXPECT_EQ(test, ctx->last_orphan_add_ino, TEST_FILE2_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2160  
171d9555beee6b Theodore Ts'o 2026-11-05  2161  	/* 3) Cross-directory subdir move: dir1/sub -> dir2/sub_moved */
171d9555beee6b Theodore Ts'o 2026-11-05  2162  	init_mock_dentry(&new_dentry, &d2_dentry, "sub_moved", NULL, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2163  	err = ext4_dir_inode_operations.rename(&nop_mnt_idmap, dir1,
171d9555beee6b Theodore Ts'o 2026-11-05  2164  					       &sub_dentry, dir2, &new_dentry,
171d9555beee6b Theodore Ts'o 2026-11-05  2165  					       0);
171d9555beee6b Theodore Ts'o 2026-11-05  2166  	KUNIT_ASSERT_EQ(test, err, 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2167  	KUNIT_EXPECT_EQ(test, dir1->i_nlink, 2U);
171d9555beee6b Theodore Ts'o 2026-11-05  2168  	KUNIT_EXPECT_EQ(test, dir2->i_nlink, 3U);
171d9555beee6b Theodore Ts'o 2026-11-05  2169  
171d9555beee6b Theodore Ts'o 2026-11-05  2170  	/* Verify subdir's '..' now points to dir2 */
171d9555beee6b Theodore Ts'o 2026-11-05  2171  	bh = map_and_get_dir_bh(ctx, subdir, 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2172  	de = ext4_next_entry((struct ext4_dir_entry_2 *)bh->b_data,
171d9555beee6b Theodore Ts'o 2026-11-05  2173  			     TEST_BLK_SIZE);
171d9555beee6b Theodore Ts'o 2026-11-05  2174  	KUNIT_EXPECT_EQ(test, le32_to_cpu(de->inode), TEST_DIR2_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2175  
171d9555beee6b Theodore Ts'o 2026-11-05  2176  	/*
171d9555beee6b Theodore Ts'o 2026-11-05  2177  	 * 4) RENAME_EXCHANGE (ext4_cross_rename): exchange regular file
171d9555beee6b Theodore Ts'o 2026-11-05  2178  	 *    dir1/f2 with directory dir2/sub_moved across parents!
171d9555beee6b Theodore Ts'o 2026-11-05  2179  	 */
171d9555beee6b Theodore Ts'o 2026-11-05  2180  	init_mock_dentry(&old_dentry, &d1_dentry, "f2", file1, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2181  	init_mock_dentry(&new_dentry, &d2_dentry, "sub_moved", subdir,
171d9555beee6b Theodore Ts'o 2026-11-05  2182  			 &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2183  
171d9555beee6b Theodore Ts'o 2026-11-05  2184  	/* Cross-project RENAME_EXCHANGE and normal rename return -EXDEV */
171d9555beee6b Theodore Ts'o 2026-11-05  2185  	ext4_set_inode_flag(dir2, EXT4_INODE_PROJINHERIT);
171d9555beee6b Theodore Ts'o 2026-11-05  2186  	EXT4_I(dir2)->i_projid = make_kprojid(&init_user_ns, 77);
171d9555beee6b Theodore Ts'o 2026-11-05  2187  	KUNIT_EXPECT_EQ(test,
171d9555beee6b Theodore Ts'o 2026-11-05  2188  		ext4_dir_inode_operations.rename(&nop_mnt_idmap, dir1,
171d9555beee6b Theodore Ts'o 2026-11-05  2189  			&old_dentry, dir2, &new_dentry, RENAME_EXCHANGE),
171d9555beee6b Theodore Ts'o 2026-11-05  2190  		-EXDEV);
171d9555beee6b Theodore Ts'o 2026-11-05  2191  	KUNIT_EXPECT_EQ(test,
171d9555beee6b Theodore Ts'o 2026-11-05  2192  		ext4_dir_inode_operations.rename(&nop_mnt_idmap, dir1,
171d9555beee6b Theodore Ts'o 2026-11-05  2193  			&old_dentry, dir2, &new_dentry, 0),
171d9555beee6b Theodore Ts'o 2026-11-05  2194  		-EXDEV);
171d9555beee6b Theodore Ts'o 2026-11-05  2195  	ext4_clear_inode_flag(dir2, EXT4_INODE_PROJINHERIT);
171d9555beee6b Theodore Ts'o 2026-11-05  2196  	EXT4_I(dir2)->i_projid = make_kprojid(&init_user_ns, EXT4_DEF_PROJID);
171d9555beee6b Theodore Ts'o 2026-11-05  2197  
171d9555beee6b Theodore Ts'o 2026-11-05  2198  	err = ext4_dir_inode_operations.rename(&nop_mnt_idmap, dir1,
171d9555beee6b Theodore Ts'o 2026-11-05  2199  					       &old_dentry, dir2, &new_dentry,
171d9555beee6b Theodore Ts'o 2026-11-05  2200  					       RENAME_EXCHANGE);
171d9555beee6b Theodore Ts'o 2026-11-05  2201  	KUNIT_ASSERT_EQ(test, err, 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2202  	KUNIT_EXPECT_EQ(test, dir1->i_nlink, 3U);
171d9555beee6b Theodore Ts'o 2026-11-05  2203  	KUNIT_EXPECT_EQ(test, dir2->i_nlink, 2U);
171d9555beee6b Theodore Ts'o 2026-11-05  2204  	de = ext4_next_entry((struct ext4_dir_entry_2 *)bh->b_data,
171d9555beee6b Theodore Ts'o 2026-11-05  2205  			     TEST_BLK_SIZE);
171d9555beee6b Theodore Ts'o 2026-11-05  2206  	KUNIT_EXPECT_EQ(test, le32_to_cpu(de->inode), TEST_DIR_INO);
171d9555beee6b Theodore Ts'o 2026-11-05  2207  
171d9555beee6b Theodore Ts'o 2026-11-05  2208  	/*
171d9555beee6b Theodore Ts'o 2026-11-05  2209  	 * Overwriting a target inode whose i_nlink == 0 returns -EFSCORRUPTED
171d9555beee6b Theodore Ts'o 2026-11-05  2210  	 * (in dir2, "sub_moved" now points to file1 after the exchange).
171d9555beee6b Theodore Ts'o 2026-11-05  2211  	 */
171d9555beee6b Theodore Ts'o 2026-11-05  2212  	init_mock_dentry(&old_dentry, &d1_dentry, "f2", subdir, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2213  	init_mock_dentry(&new_dentry, &d2_dentry, "sub_moved", file1, &ctx->sb);
171d9555beee6b Theodore Ts'o 2026-11-05  2214  	set_nlink(file1, 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2215  	KUNIT_EXPECT_EQ(test,
171d9555beee6b Theodore Ts'o 2026-11-05  2216  		ext4_dir_inode_operations.rename(&nop_mnt_idmap, dir2,
171d9555beee6b Theodore Ts'o 2026-11-05  2217  			&new_dentry, dir2, &new_dentry, 0),
171d9555beee6b Theodore Ts'o 2026-11-05  2218  		-EFSCORRUPTED);
171d9555beee6b Theodore Ts'o 2026-11-05  2219  	set_nlink(file1, 1);
171d9555beee6b Theodore Ts'o 2026-11-05  2220  
171d9555beee6b Theodore Ts'o 2026-11-05  2221  	/* 5) Test ext4_init_symlink_block_test */
171d9555beee6b Theodore Ts'o 2026-11-05  2222  	err = ext4_init_symlink_block_test(NULL, symlink_inode, &disk_link);
171d9555beee6b Theodore Ts'o 2026-11-05  2223  	KUNIT_ASSERT_EQ(test, err, 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2224  	KUNIT_EXPECT_EQ(test, symlink_inode->i_size,
171d9555beee6b Theodore Ts'o 2026-11-05  2225  			(loff_t)strlen(sym_target));
171d9555beee6b Theodore Ts'o 2026-11-05  2226  	bh = map_and_get_dir_bh(ctx, symlink_inode, 0);
171d9555beee6b Theodore Ts'o 2026-11-05  2227  	KUNIT_ASSERT_NOT_NULL(test, bh);
171d9555beee6b Theodore Ts'o 2026-11-05  2228  	KUNIT_EXPECT_STREQ(test, bh->b_data, sym_target);
171d9555beee6b Theodore Ts'o 2026-11-05 @2229  }
171d9555beee6b Theodore Ts'o 2026-11-05  2230  

:::::: The code at line 2229 was first introduced by commit
:::::: 171d9555beee6b445eb465dcbe657dd99ddf24b8 ext4: add KUnit tests for fs/ext4/namei.c

:::::: TO: Theodore Ts'o <tytso@mit.edu>
:::::: CC: Theodore Ts'o <tytso@mit.edu>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-11-12 16:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-12 16:44 [tytso-ext4:pu 16/50] fs/ext4/namei-test.c:2229:1: warning: the frame size of 1856 bytes is larger than 1536 bytes kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox