All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 2657/3131] fs/ext2/super.c:1149:3: warning: calling function 'ext2_rsv_window_add' requires holding spinlock 'EXT2_SB(sb).s_rsv_window_lock' exclusively
@ 2026-09-03  9:51 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-09-03  9:51 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp

:::::: 
:::::: Manual check reason: "only suspicious fbc files changed"
:::::: 

BCC: lkp@intel.com
CC: llvm@lists.linux.dev
CC: oe-kbuild-all@lists.linux.dev
TO: Timothy Day <timday@thelustrecollective.com>
CC: Jan Kara <jack@suse.cz>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   32b6ef9a5d0eca44f9cd91f52f4faa89f145a0de
commit: a3cf61f60051ca8874f012fa8569fa971fbfbee0 [2657/3131] ext2: enable context analysis support for ext2 filesystem
:::::: branch date: 21 hours ago
:::::: commit date: 2 days ago
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20260903/202609031718.nHHkJ5KA-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project ed1626b9d0eaf7c406f44da5fb595ad94559f54b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260903/202609031718.nHHkJ5KA-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/r/202609031718.nHHkJ5KA-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> fs/ext2/super.c:1149:3: warning: calling function 'ext2_rsv_window_add' requires holding spinlock 'EXT2_SB(sb).s_rsv_window_lock' exclusively [-Wthread-safety-precise]
    1149 |                 ext2_rsv_window_add(sb, &sbi->s_rsv_window_head);
         |                 ^
   fs/ext2/super.c:1149:3: note: found near match '_res->s_rsv_window_lock'
   1 warning generated.


vim +1149 fs/ext2/super.c

eab61d3260d76b Eric Sandeen      2025-02-23   866  
eab61d3260d76b Eric Sandeen      2025-02-23   867  static int ext2_fill_super(struct super_block *sb, struct fs_context *fc)
^1da177e4c3f41 Linus Torvalds    2005-04-16   868  {
eab61d3260d76b Eric Sandeen      2025-02-23   869  	struct ext2_fs_context *ctx = fc->fs_private;
eab61d3260d76b Eric Sandeen      2025-02-23   870  	int silent = fc->sb_flags & SB_SILENT;
^1da177e4c3f41 Linus Torvalds    2005-04-16   871  	struct buffer_head * bh;
^1da177e4c3f41 Linus Torvalds    2005-04-16   872  	struct ext2_sb_info * sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   873  	struct ext2_super_block * es;
^1da177e4c3f41 Linus Torvalds    2005-04-16   874  	struct inode *root;
^1da177e4c3f41 Linus Torvalds    2005-04-16   875  	unsigned long block;
eab61d3260d76b Eric Sandeen      2025-02-23   876  	unsigned long sb_block = ctx->s_sb_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16   877  	unsigned long logic_sb_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16   878  	unsigned long offset = 0;
d09099051057bb Chengguang Xu     2018-02-26   879  	long ret = -ENOMEM;
^1da177e4c3f41 Linus Torvalds    2005-04-16   880  	int blocksize = BLOCK_SIZE;
^1da177e4c3f41 Linus Torvalds    2005-04-16   881  	int db_count;
^1da177e4c3f41 Linus Torvalds    2005-04-16   882  	int i, j;
^1da177e4c3f41 Linus Torvalds    2005-04-16   883  	__le32 features;
833f4077bf7c2d Peter Zijlstra    2007-10-16   884  	int err;
^1da177e4c3f41 Linus Torvalds    2005-04-16   885  
bf4afc53b77aea Linus Torvalds    2026-02-21   886  	sbi = kzalloc_obj(*sbi);
^1da177e4c3f41 Linus Torvalds    2005-04-16   887  	if (!sbi)
cea845cdef4f50 Christoph Hellwig 2021-11-29   888  		return -ENOMEM;
18a82eb9f980b5 Pekka J Enberg    2009-01-07   889  
18a82eb9f980b5 Pekka J Enberg    2009-01-07   890  	sbi->s_blockgroup_lock =
bf4afc53b77aea Linus Torvalds    2026-02-21   891  		kzalloc_obj(struct blockgroup_lock);
18a82eb9f980b5 Pekka J Enberg    2009-01-07   892  	if (!sbi->s_blockgroup_lock) {
18a82eb9f980b5 Pekka J Enberg    2009-01-07   893  		kfree(sbi);
cea845cdef4f50 Christoph Hellwig 2021-11-29   894  		return -ENOMEM;
18a82eb9f980b5 Pekka J Enberg    2009-01-07   895  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   896  	sb->s_fs_info = sbi;
93d44cb275f3eb Miklos Szeredi    2007-10-16   897  	sbi->s_sb_block = sb_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16   898  
023051c2d0f1d7 Timothy Day       2026-08-11   899  	guard(spinlock_init)(&EXT2_SB(sb)->s_lock);
d09099051057bb Chengguang Xu     2018-02-26   900  	ret = -EINVAL;
c15271f4e74cd6 Jan Blunck        2010-04-14   901  
^1da177e4c3f41 Linus Torvalds    2005-04-16   902  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16   903  	 * See what the current blocksize for the device is, and
^1da177e4c3f41 Linus Torvalds    2005-04-16   904  	 * use that as the blocksize.  Otherwise (or if the blocksize
^1da177e4c3f41 Linus Torvalds    2005-04-16   905  	 * is smaller than the default) use the default.
^1da177e4c3f41 Linus Torvalds    2005-04-16   906  	 * This is important for devices that have a hardware
^1da177e4c3f41 Linus Torvalds    2005-04-16   907  	 * sectorsize that is larger than the default.
^1da177e4c3f41 Linus Torvalds    2005-04-16   908  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   909  	blocksize = sb_min_blocksize(sb, BLOCK_SIZE);
^1da177e4c3f41 Linus Torvalds    2005-04-16   910  	if (!blocksize) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19   911  		ext2_msg(sb, KERN_ERR, "error: unable to set blocksize");
^1da177e4c3f41 Linus Torvalds    2005-04-16   912  		goto failed_sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   913  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   914  
^1da177e4c3f41 Linus Torvalds    2005-04-16   915  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16   916  	 * If the superblock doesn't start on a hardware sector boundary,
^1da177e4c3f41 Linus Torvalds    2005-04-16   917  	 * calculate the offset.  
^1da177e4c3f41 Linus Torvalds    2005-04-16   918  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   919  	if (blocksize != BLOCK_SIZE) {
^1da177e4c3f41 Linus Torvalds    2005-04-16   920  		logic_sb_block = (sb_block*BLOCK_SIZE) / blocksize;
^1da177e4c3f41 Linus Torvalds    2005-04-16   921  		offset = (sb_block*BLOCK_SIZE) % blocksize;
^1da177e4c3f41 Linus Torvalds    2005-04-16   922  	} else {
^1da177e4c3f41 Linus Torvalds    2005-04-16   923  		logic_sb_block = sb_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16   924  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   925  
^1da177e4c3f41 Linus Torvalds    2005-04-16   926  	if (!(bh = sb_bread(sb, logic_sb_block))) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19   927  		ext2_msg(sb, KERN_ERR, "error: unable to read superblock");
^1da177e4c3f41 Linus Torvalds    2005-04-16   928  		goto failed_sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   929  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   930  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16   931  	 * Note: s_es must be initialized as soon as possible because
^1da177e4c3f41 Linus Torvalds    2005-04-16   932  	 *       some ext2 macro-instructions depend on its value
^1da177e4c3f41 Linus Torvalds    2005-04-16   933  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   934  	es = (struct ext2_super_block *) (((char *)bh->b_data) + offset);
^1da177e4c3f41 Linus Torvalds    2005-04-16   935  	sbi->s_es = es;
^1da177e4c3f41 Linus Torvalds    2005-04-16   936  	sb->s_magic = le16_to_cpu(es->s_magic);
^1da177e4c3f41 Linus Torvalds    2005-04-16   937  
^1da177e4c3f41 Linus Torvalds    2005-04-16   938  	if (sb->s_magic != EXT2_SUPER_MAGIC)
^1da177e4c3f41 Linus Torvalds    2005-04-16   939  		goto cantfind_ext2;
^1da177e4c3f41 Linus Torvalds    2005-04-16   940  
eab61d3260d76b Eric Sandeen      2025-02-23   941  	ext2_set_options(fc, sbi);
088519572ca8bd Jan Kara          2017-10-09   942  
1751e8a6cb935e Linus Torvalds    2017-11-27   943  	sb->s_flags = (sb->s_flags & ~SB_POSIXACL) |
38fa0e8e4a3b93 Chengguang Xu     2019-05-20   944  		(test_opt(sb, POSIX_ACL) ? SB_POSIXACL : 0);
46b15caa7cb19b Tejun Heo         2015-06-16   945  	sb->s_iflags |= SB_I_CGROUPWB;
^1da177e4c3f41 Linus Torvalds    2005-04-16   946  
^1da177e4c3f41 Linus Torvalds    2005-04-16   947  	if (le32_to_cpu(es->s_rev_level) == EXT2_GOOD_OLD_REV &&
^1da177e4c3f41 Linus Torvalds    2005-04-16   948  	    (EXT2_HAS_COMPAT_FEATURE(sb, ~0U) ||
^1da177e4c3f41 Linus Torvalds    2005-04-16   949  	     EXT2_HAS_RO_COMPAT_FEATURE(sb, ~0U) ||
^1da177e4c3f41 Linus Torvalds    2005-04-16   950  	     EXT2_HAS_INCOMPAT_FEATURE(sb, ~0U)))
2314b07cb47ef7 Oleksij Rempel    2009-11-19   951  		ext2_msg(sb, KERN_WARNING,
2314b07cb47ef7 Oleksij Rempel    2009-11-19   952  			"warning: feature flags set on rev 0 fs, "
2314b07cb47ef7 Oleksij Rempel    2009-11-19   953  			"running e2fsck is recommended");
^1da177e4c3f41 Linus Torvalds    2005-04-16   954  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16   955  	 * Check feature flags regardless of the revision level, since we
^1da177e4c3f41 Linus Torvalds    2005-04-16   956  	 * previously didn't change the revision level when setting the flags,
^1da177e4c3f41 Linus Torvalds    2005-04-16   957  	 * so there is a chance incompat flags are set on a rev 0 filesystem.
^1da177e4c3f41 Linus Torvalds    2005-04-16   958  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   959  	features = EXT2_HAS_INCOMPAT_FEATURE(sb, ~EXT2_FEATURE_INCOMPAT_SUPP);
^1da177e4c3f41 Linus Torvalds    2005-04-16   960  	if (features) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19   961  		ext2_msg(sb, KERN_ERR,	"error: couldn't mount because of "
2314b07cb47ef7 Oleksij Rempel    2009-11-19   962  		       "unsupported optional features (%x)",
2314b07cb47ef7 Oleksij Rempel    2009-11-19   963  			le32_to_cpu(features));
^1da177e4c3f41 Linus Torvalds    2005-04-16   964  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16   965  	}
bc98a42c1f7d0f David Howells     2017-07-17   966  	if (!sb_rdonly(sb) && (features = EXT2_HAS_RO_COMPAT_FEATURE(sb, ~EXT2_FEATURE_RO_COMPAT_SUPP))){
2314b07cb47ef7 Oleksij Rempel    2009-11-19   967  		ext2_msg(sb, KERN_ERR, "error: couldn't mount RDWR because of "
2314b07cb47ef7 Oleksij Rempel    2009-11-19   968  		       "unsupported optional features (%x)",
2314b07cb47ef7 Oleksij Rempel    2009-11-19   969  		       le32_to_cpu(features));
^1da177e4c3f41 Linus Torvalds    2005-04-16   970  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16   971  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   972  
62aeb94433fcec Jan Kara          2023-03-01   973  	if (le32_to_cpu(es->s_log_block_size) >
62aeb94433fcec Jan Kara          2023-03-01   974  	    (EXT2_MAX_BLOCK_LOG_SIZE - BLOCK_SIZE_BITS)) {
62aeb94433fcec Jan Kara          2023-03-01   975  		ext2_msg(sb, KERN_ERR,
62aeb94433fcec Jan Kara          2023-03-01   976  			 "Invalid log block size: %u",
62aeb94433fcec Jan Kara          2023-03-01   977  			 le32_to_cpu(es->s_log_block_size));
62aeb94433fcec Jan Kara          2023-03-01   978  		goto failed_mount;
62aeb94433fcec Jan Kara          2023-03-01   979  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   980  	blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size);
^1da177e4c3f41 Linus Torvalds    2005-04-16   981  
^1da177e4c3f41 Linus Torvalds    2005-04-16   982  	/* If the blocksize doesn't match, re-read the thing.. */
^1da177e4c3f41 Linus Torvalds    2005-04-16   983  	if (sb->s_blocksize != blocksize) {
^1da177e4c3f41 Linus Torvalds    2005-04-16   984  		brelse(bh);
^1da177e4c3f41 Linus Torvalds    2005-04-16   985  
^1da177e4c3f41 Linus Torvalds    2005-04-16   986  		if (!sb_set_blocksize(sb, blocksize)) {
4e299c1d9113b5 Robin Dong        2011-05-05   987  			ext2_msg(sb, KERN_ERR,
4e299c1d9113b5 Robin Dong        2011-05-05   988  				"error: bad blocksize %d", blocksize);
^1da177e4c3f41 Linus Torvalds    2005-04-16   989  			goto failed_sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   990  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16   991  
^1da177e4c3f41 Linus Torvalds    2005-04-16   992  		logic_sb_block = (sb_block*BLOCK_SIZE) / blocksize;
^1da177e4c3f41 Linus Torvalds    2005-04-16   993  		offset = (sb_block*BLOCK_SIZE) % blocksize;
^1da177e4c3f41 Linus Torvalds    2005-04-16   994  		bh = sb_bread(sb, logic_sb_block);
^1da177e4c3f41 Linus Torvalds    2005-04-16   995  		if(!bh) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19   996  			ext2_msg(sb, KERN_ERR, "error: couldn't read"
2314b07cb47ef7 Oleksij Rempel    2009-11-19   997  				"superblock on 2nd try");
^1da177e4c3f41 Linus Torvalds    2005-04-16   998  			goto failed_sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   999  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1000  		es = (struct ext2_super_block *) (((char *)bh->b_data) + offset);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1001  		sbi->s_es = es;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1002  		if (es->s_magic != cpu_to_le16(EXT2_SUPER_MAGIC)) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1003  			ext2_msg(sb, KERN_ERR, "error: magic mismatch");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1004  			goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1005  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1006  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1007  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1008  	sb->s_maxbytes = ext2_max_size(sb->s_blocksize_bits);
8de52778798fe3 Al Viro           2012-02-06  1009  	sb->s_max_links = EXT2_LINK_MAX;
22b139691f9eb8 Deepa Dinamani    2019-07-30  1010  	sb->s_time_min = S32_MIN;
22b139691f9eb8 Deepa Dinamani    2019-07-30  1011  	sb->s_time_max = S32_MAX;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1012  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1013  	if (le32_to_cpu(es->s_rev_level) == EXT2_GOOD_OLD_REV) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1014  		sbi->s_inode_size = EXT2_GOOD_OLD_INODE_SIZE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1015  		sbi->s_first_ino = EXT2_GOOD_OLD_FIRST_INO;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1016  	} else {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1017  		sbi->s_inode_size = le16_to_cpu(es->s_inode_size);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1018  		sbi->s_first_ino = le32_to_cpu(es->s_first_ino);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1019  		if ((sbi->s_inode_size < EXT2_GOOD_OLD_INODE_SIZE) ||
d8ea6cf8999100 vignesh babu      2007-10-16  1020  		    !is_power_of_2(sbi->s_inode_size) ||
^1da177e4c3f41 Linus Torvalds    2005-04-16  1021  		    (sbi->s_inode_size > blocksize)) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1022  			ext2_msg(sb, KERN_ERR,
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1023  				"error: unsupported inode size: %d",
^1da177e4c3f41 Linus Torvalds    2005-04-16  1024  				sbi->s_inode_size);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1025  			goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1026  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1027  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1028  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1029  	sbi->s_blocks_per_group = le32_to_cpu(es->s_blocks_per_group);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1030  	sbi->s_inodes_per_group = le32_to_cpu(es->s_inodes_per_group);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1031  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1032  	sbi->s_inodes_per_block = sb->s_blocksize / EXT2_INODE_SIZE(sb);
607eb266aea9dd Andries Brouwer   2006-08-27  1033  	if (sbi->s_inodes_per_block == 0 || sbi->s_inodes_per_group == 0)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1034  		goto cantfind_ext2;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1035  	sbi->s_itb_per_group = sbi->s_inodes_per_group /
^1da177e4c3f41 Linus Torvalds    2005-04-16  1036  					sbi->s_inodes_per_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1037  	sbi->s_desc_per_block = sb->s_blocksize /
^1da177e4c3f41 Linus Torvalds    2005-04-16  1038  					sizeof (struct ext2_group_desc);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1039  	sbi->s_sbh = bh;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1040  	sbi->s_mount_state = le16_to_cpu(es->s_state);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1041  	sbi->s_addr_per_block_bits =
f0d1b0b30d250a David Howells     2006-12-08  1042  		ilog2 (EXT2_ADDR_PER_BLOCK(sb));
^1da177e4c3f41 Linus Torvalds    2005-04-16  1043  	sbi->s_desc_per_block_bits =
f0d1b0b30d250a David Howells     2006-12-08  1044  		ilog2 (EXT2_DESC_PER_BLOCK(sb));
^1da177e4c3f41 Linus Torvalds    2005-04-16  1045  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1046  	if (sb->s_magic != EXT2_SUPER_MAGIC)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1047  		goto cantfind_ext2;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1048  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1049  	if (sb->s_blocksize != bh->b_size) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1050  		if (!silent)
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1051  			ext2_msg(sb, KERN_ERR, "error: unsupported blocksize");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1052  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1053  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1054  
404615d7f1dcd4 Jan Kara          2023-06-13  1055  	if (es->s_log_frag_size != es->s_log_block_size) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1056  		ext2_msg(sb, KERN_ERR,
404615d7f1dcd4 Jan Kara          2023-06-13  1057  			"error: fragsize log %u != blocksize log %u",
404615d7f1dcd4 Jan Kara          2023-06-13  1058  			le32_to_cpu(es->s_log_frag_size), sb->s_blocksize_bits);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1059  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1060  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1061  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1062  	if (sbi->s_blocks_per_group > sb->s_blocksize * 8) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1063  		ext2_msg(sb, KERN_ERR,
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1064  			"error: #blocks per group too big: %lu",
^1da177e4c3f41 Linus Torvalds    2005-04-16  1065  			sbi->s_blocks_per_group);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1066  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1067  	}
d766f2d1e3e3bd Jan Kara          2022-09-14  1068  	/* At least inode table, bitmaps, and sb have to fit in one group */
d766f2d1e3e3bd Jan Kara          2022-09-14  1069  	if (sbi->s_blocks_per_group <= sbi->s_itb_per_group + 3) {
d766f2d1e3e3bd Jan Kara          2022-09-14  1070  		ext2_msg(sb, KERN_ERR,
d766f2d1e3e3bd Jan Kara          2022-09-14  1071  			"error: #blocks per group smaller than metadata size: %lu <= %lu",
d766f2d1e3e3bd Jan Kara          2022-09-14  1072  			sbi->s_blocks_per_group, sbi->s_inodes_per_group + 3);
d766f2d1e3e3bd Jan Kara          2022-09-14  1073  		goto failed_mount;
d766f2d1e3e3bd Jan Kara          2022-09-14  1074  	}
fa78f336937240 Jan Kara          2022-07-26  1075  	if (sbi->s_inodes_per_group < sbi->s_inodes_per_block ||
fa78f336937240 Jan Kara          2022-07-26  1076  	    sbi->s_inodes_per_group > sb->s_blocksize * 8) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1077  		ext2_msg(sb, KERN_ERR,
fa78f336937240 Jan Kara          2022-07-26  1078  			"error: invalid #inodes per group: %lu",
^1da177e4c3f41 Linus Torvalds    2005-04-16  1079  			sbi->s_inodes_per_group);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1080  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1081  	}
d766f2d1e3e3bd Jan Kara          2022-09-14  1082  	if (sb_bdev_nr_blocks(sb) < le32_to_cpu(es->s_blocks_count)) {
d766f2d1e3e3bd Jan Kara          2022-09-14  1083  		ext2_msg(sb, KERN_ERR,
d766f2d1e3e3bd Jan Kara          2022-09-14  1084  			 "bad geometry: block count %u exceeds size of device (%u blocks)",
d766f2d1e3e3bd Jan Kara          2022-09-14  1085  			 le32_to_cpu(es->s_blocks_count),
d766f2d1e3e3bd Jan Kara          2022-09-14  1086  			 (unsigned)sb_bdev_nr_blocks(sb));
d766f2d1e3e3bd Jan Kara          2022-09-14  1087  		goto failed_mount;
d766f2d1e3e3bd Jan Kara          2022-09-14  1088  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1089  
41f04d852e3595 Eric Sandeen      2006-09-27  1090  	sbi->s_groups_count = ((le32_to_cpu(es->s_blocks_count) -
41f04d852e3595 Eric Sandeen      2006-09-27  1091  				le32_to_cpu(es->s_first_data_block) - 1)
41f04d852e3595 Eric Sandeen      2006-09-27  1092  					/ EXT2_BLOCKS_PER_GROUP(sb)) + 1;
fa78f336937240 Jan Kara          2022-07-26  1093  	if ((u64)sbi->s_groups_count * sbi->s_inodes_per_group !=
fa78f336937240 Jan Kara          2022-07-26  1094  	    le32_to_cpu(es->s_inodes_count)) {
fa78f336937240 Jan Kara          2022-07-26  1095  		ext2_msg(sb, KERN_ERR, "error: invalid #inodes: %u vs computed %llu",
fa78f336937240 Jan Kara          2022-07-26  1096  			 le32_to_cpu(es->s_inodes_count),
fa78f336937240 Jan Kara          2022-07-26  1097  			 (u64)sbi->s_groups_count * sbi->s_inodes_per_group);
fa78f336937240 Jan Kara          2022-07-26  1098  		goto failed_mount;
fa78f336937240 Jan Kara          2022-07-26  1099  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1100  	db_count = (sbi->s_groups_count + EXT2_DESC_PER_BLOCK(sb) - 1) /
^1da177e4c3f41 Linus Torvalds    2005-04-16  1101  		   EXT2_DESC_PER_BLOCK(sb);
32a92f8c893269 Linus Torvalds    2026-02-21  1102  	sbi->s_group_desc = kvmalloc_objs(struct buffer_head *, db_count);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1103  	if (sbi->s_group_desc == NULL) {
6a03e6a8dcf573 Chengguang Xu     2019-01-01  1104  		ret = -ENOMEM;
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1105  		ext2_msg(sb, KERN_ERR, "error: not enough memory");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1106  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1107  	}
18a82eb9f980b5 Pekka J Enberg    2009-01-07  1108  	bgl_lock_init(sbi->s_blockgroup_lock);
dd00cc486ab1c1 Yoann Padioleau   2007-07-19  1109  	sbi->s_debts = kcalloc(sbi->s_groups_count, sizeof(*sbi->s_debts), GFP_KERNEL);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1110  	if (!sbi->s_debts) {
6a03e6a8dcf573 Chengguang Xu     2019-01-01  1111  		ret = -ENOMEM;
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1112  		ext2_msg(sb, KERN_ERR, "error: not enough memory");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1113  		goto failed_mount_group_desc;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1114  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1115  	for (i = 0; i < db_count; i++) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1116  		block = descriptor_loc(sb, logic_sb_block, i);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1117  		sbi->s_group_desc[i] = sb_bread(sb, block);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1118  		if (!sbi->s_group_desc[i]) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1119  			for (j = 0; j < i; j++)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1120  				brelse (sbi->s_group_desc[j]);
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1121  			ext2_msg(sb, KERN_ERR,
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1122  				"error: unable to read group descriptors");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1123  			goto failed_mount_group_desc;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1124  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1125  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1126  	if (!ext2_check_descriptors (sb)) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1127  		ext2_msg(sb, KERN_ERR, "group descriptors corrupted");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1128  		goto failed_mount2;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1129  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1130  	sbi->s_gdb_count = db_count;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1131  	spin_lock_init(&sbi->s_next_gen_lock);
e76ed86ee88f68 Timothy Day       2026-08-11  1132  	scoped_guard(spinlock, &sbi->s_next_gen_lock)
e76ed86ee88f68 Timothy Day       2026-08-11  1133  		sbi->s_next_generation = get_random_u32();
0216bfcffe424a Mingming Cao      2006-06-23  1134  
e312c97ea253f0 Liu xuzhi         2021-03-18  1135  	/* per filesystem reservation list head & lock */
a686cd898bd999 Martin J. Bligh   2007-10-16  1136  	spin_lock_init(&sbi->s_rsv_window_lock);
2e918ca509ae57 Timothy Day       2026-08-11  1137  	scoped_guard(spinlock, &sbi->s_rsv_window_lock) {
a686cd898bd999 Martin J. Bligh   2007-10-16  1138  		sbi->s_rsv_window_root = RB_ROOT;
a686cd898bd999 Martin J. Bligh   2007-10-16  1139  		/*
a686cd898bd999 Martin J. Bligh   2007-10-16  1140  		 * Add a single, static dummy reservation to the start of the
a686cd898bd999 Martin J. Bligh   2007-10-16  1141  		 * reservation window list --- it gives us a placeholder for
a686cd898bd999 Martin J. Bligh   2007-10-16  1142  		 * append-at-start-of-list which makes the allocation logic
a686cd898bd999 Martin J. Bligh   2007-10-16  1143  		 * _much_ simpler.
a686cd898bd999 Martin J. Bligh   2007-10-16  1144  		 */
a686cd898bd999 Martin J. Bligh   2007-10-16  1145  		sbi->s_rsv_window_head.rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
a686cd898bd999 Martin J. Bligh   2007-10-16  1146  		sbi->s_rsv_window_head.rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
a686cd898bd999 Martin J. Bligh   2007-10-16  1147  		sbi->s_rsv_window_head.rsv_alloc_hit = 0;
a686cd898bd999 Martin J. Bligh   2007-10-16  1148  		sbi->s_rsv_window_head.rsv_goal_size = 0;
a686cd898bd999 Martin J. Bligh   2007-10-16 @1149  		ext2_rsv_window_add(sb, &sbi->s_rsv_window_head);
2e918ca509ae57 Timothy Day       2026-08-11  1150  	}
a686cd898bd999 Martin J. Bligh   2007-10-16  1151  
833f4077bf7c2d Peter Zijlstra    2007-10-16  1152  	err = percpu_counter_init(&sbi->s_freeblocks_counter,
908c7f1949cb7c Tejun Heo         2014-09-08  1153  				ext2_count_free_blocks(sb), GFP_KERNEL);
833f4077bf7c2d Peter Zijlstra    2007-10-16  1154  	if (!err) {
833f4077bf7c2d Peter Zijlstra    2007-10-16  1155  		err = percpu_counter_init(&sbi->s_freeinodes_counter,
908c7f1949cb7c Tejun Heo         2014-09-08  1156  				ext2_count_free_inodes(sb), GFP_KERNEL);
833f4077bf7c2d Peter Zijlstra    2007-10-16  1157  	}
833f4077bf7c2d Peter Zijlstra    2007-10-16  1158  	if (!err) {
833f4077bf7c2d Peter Zijlstra    2007-10-16  1159  		err = percpu_counter_init(&sbi->s_dirs_counter,
908c7f1949cb7c Tejun Heo         2014-09-08  1160  				ext2_count_dirs(sb), GFP_KERNEL);
833f4077bf7c2d Peter Zijlstra    2007-10-16  1161  	}
833f4077bf7c2d Peter Zijlstra    2007-10-16  1162  	if (err) {
34e92542da9643 Chengguang Xu     2019-11-29  1163  		ret = err;
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1164  		ext2_msg(sb, KERN_ERR, "error: insufficient memory");
833f4077bf7c2d Peter Zijlstra    2007-10-16  1165  		goto failed_mount3;
833f4077bf7c2d Peter Zijlstra    2007-10-16  1166  	}
be0726d33cb8f4 Jan Kara          2016-02-22  1167  

:::::: The code at line 1149 was first introduced by commit
:::::: a686cd898bd999fd026a51e90fb0a3410d258ddb ext2 reservations

:::::: TO: Martin J. Bligh <mbligh@mbligh.org>
:::::: CC: Linus Torvalds <torvalds@woody.linux-foundation.org>

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [linux-next:master 2657/3131] fs/ext2/super.c:1149:3: warning: calling function 'ext2_rsv_window_add' requires holding spinlock 'EXT2_SB(sb).s_rsv_window_lock' exclusively
@ 2026-09-04 12:21 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-09-04 12:21 UTC (permalink / raw)
  To: Timothy Day; +Cc: llvm, oe-kbuild-all, Jan Kara

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   32b6ef9a5d0eca44f9cd91f52f4faa89f145a0de
commit: a3cf61f60051ca8874f012fa8569fa971fbfbee0 [2657/3131] ext2: enable context analysis support for ext2 filesystem
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20260903/202609031718.nHHkJ5KA-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project ed1626b9d0eaf7c406f44da5fb595ad94559f54b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260903/202609031718.nHHkJ5KA-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/r/202609031718.nHHkJ5KA-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> fs/ext2/super.c:1149:3: warning: calling function 'ext2_rsv_window_add' requires holding spinlock 'EXT2_SB(sb).s_rsv_window_lock' exclusively [-Wthread-safety-precise]
    1149 |                 ext2_rsv_window_add(sb, &sbi->s_rsv_window_head);
         |                 ^
   fs/ext2/super.c:1149:3: note: found near match '_res->s_rsv_window_lock'
   1 warning generated.


vim +1149 fs/ext2/super.c

eab61d3260d76b Eric Sandeen      2025-02-23   866  
eab61d3260d76b Eric Sandeen      2025-02-23   867  static int ext2_fill_super(struct super_block *sb, struct fs_context *fc)
^1da177e4c3f41 Linus Torvalds    2005-04-16   868  {
eab61d3260d76b Eric Sandeen      2025-02-23   869  	struct ext2_fs_context *ctx = fc->fs_private;
eab61d3260d76b Eric Sandeen      2025-02-23   870  	int silent = fc->sb_flags & SB_SILENT;
^1da177e4c3f41 Linus Torvalds    2005-04-16   871  	struct buffer_head * bh;
^1da177e4c3f41 Linus Torvalds    2005-04-16   872  	struct ext2_sb_info * sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   873  	struct ext2_super_block * es;
^1da177e4c3f41 Linus Torvalds    2005-04-16   874  	struct inode *root;
^1da177e4c3f41 Linus Torvalds    2005-04-16   875  	unsigned long block;
eab61d3260d76b Eric Sandeen      2025-02-23   876  	unsigned long sb_block = ctx->s_sb_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16   877  	unsigned long logic_sb_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16   878  	unsigned long offset = 0;
d09099051057bb Chengguang Xu     2018-02-26   879  	long ret = -ENOMEM;
^1da177e4c3f41 Linus Torvalds    2005-04-16   880  	int blocksize = BLOCK_SIZE;
^1da177e4c3f41 Linus Torvalds    2005-04-16   881  	int db_count;
^1da177e4c3f41 Linus Torvalds    2005-04-16   882  	int i, j;
^1da177e4c3f41 Linus Torvalds    2005-04-16   883  	__le32 features;
833f4077bf7c2d Peter Zijlstra    2007-10-16   884  	int err;
^1da177e4c3f41 Linus Torvalds    2005-04-16   885  
bf4afc53b77aea Linus Torvalds    2026-02-21   886  	sbi = kzalloc_obj(*sbi);
^1da177e4c3f41 Linus Torvalds    2005-04-16   887  	if (!sbi)
cea845cdef4f50 Christoph Hellwig 2021-11-29   888  		return -ENOMEM;
18a82eb9f980b5 Pekka J Enberg    2009-01-07   889  
18a82eb9f980b5 Pekka J Enberg    2009-01-07   890  	sbi->s_blockgroup_lock =
bf4afc53b77aea Linus Torvalds    2026-02-21   891  		kzalloc_obj(struct blockgroup_lock);
18a82eb9f980b5 Pekka J Enberg    2009-01-07   892  	if (!sbi->s_blockgroup_lock) {
18a82eb9f980b5 Pekka J Enberg    2009-01-07   893  		kfree(sbi);
cea845cdef4f50 Christoph Hellwig 2021-11-29   894  		return -ENOMEM;
18a82eb9f980b5 Pekka J Enberg    2009-01-07   895  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   896  	sb->s_fs_info = sbi;
93d44cb275f3eb Miklos Szeredi    2007-10-16   897  	sbi->s_sb_block = sb_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16   898  
023051c2d0f1d7 Timothy Day       2026-08-11   899  	guard(spinlock_init)(&EXT2_SB(sb)->s_lock);
d09099051057bb Chengguang Xu     2018-02-26   900  	ret = -EINVAL;
c15271f4e74cd6 Jan Blunck        2010-04-14   901  
^1da177e4c3f41 Linus Torvalds    2005-04-16   902  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16   903  	 * See what the current blocksize for the device is, and
^1da177e4c3f41 Linus Torvalds    2005-04-16   904  	 * use that as the blocksize.  Otherwise (or if the blocksize
^1da177e4c3f41 Linus Torvalds    2005-04-16   905  	 * is smaller than the default) use the default.
^1da177e4c3f41 Linus Torvalds    2005-04-16   906  	 * This is important for devices that have a hardware
^1da177e4c3f41 Linus Torvalds    2005-04-16   907  	 * sectorsize that is larger than the default.
^1da177e4c3f41 Linus Torvalds    2005-04-16   908  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   909  	blocksize = sb_min_blocksize(sb, BLOCK_SIZE);
^1da177e4c3f41 Linus Torvalds    2005-04-16   910  	if (!blocksize) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19   911  		ext2_msg(sb, KERN_ERR, "error: unable to set blocksize");
^1da177e4c3f41 Linus Torvalds    2005-04-16   912  		goto failed_sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   913  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   914  
^1da177e4c3f41 Linus Torvalds    2005-04-16   915  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16   916  	 * If the superblock doesn't start on a hardware sector boundary,
^1da177e4c3f41 Linus Torvalds    2005-04-16   917  	 * calculate the offset.  
^1da177e4c3f41 Linus Torvalds    2005-04-16   918  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   919  	if (blocksize != BLOCK_SIZE) {
^1da177e4c3f41 Linus Torvalds    2005-04-16   920  		logic_sb_block = (sb_block*BLOCK_SIZE) / blocksize;
^1da177e4c3f41 Linus Torvalds    2005-04-16   921  		offset = (sb_block*BLOCK_SIZE) % blocksize;
^1da177e4c3f41 Linus Torvalds    2005-04-16   922  	} else {
^1da177e4c3f41 Linus Torvalds    2005-04-16   923  		logic_sb_block = sb_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16   924  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   925  
^1da177e4c3f41 Linus Torvalds    2005-04-16   926  	if (!(bh = sb_bread(sb, logic_sb_block))) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19   927  		ext2_msg(sb, KERN_ERR, "error: unable to read superblock");
^1da177e4c3f41 Linus Torvalds    2005-04-16   928  		goto failed_sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   929  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   930  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16   931  	 * Note: s_es must be initialized as soon as possible because
^1da177e4c3f41 Linus Torvalds    2005-04-16   932  	 *       some ext2 macro-instructions depend on its value
^1da177e4c3f41 Linus Torvalds    2005-04-16   933  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   934  	es = (struct ext2_super_block *) (((char *)bh->b_data) + offset);
^1da177e4c3f41 Linus Torvalds    2005-04-16   935  	sbi->s_es = es;
^1da177e4c3f41 Linus Torvalds    2005-04-16   936  	sb->s_magic = le16_to_cpu(es->s_magic);
^1da177e4c3f41 Linus Torvalds    2005-04-16   937  
^1da177e4c3f41 Linus Torvalds    2005-04-16   938  	if (sb->s_magic != EXT2_SUPER_MAGIC)
^1da177e4c3f41 Linus Torvalds    2005-04-16   939  		goto cantfind_ext2;
^1da177e4c3f41 Linus Torvalds    2005-04-16   940  
eab61d3260d76b Eric Sandeen      2025-02-23   941  	ext2_set_options(fc, sbi);
088519572ca8bd Jan Kara          2017-10-09   942  
1751e8a6cb935e Linus Torvalds    2017-11-27   943  	sb->s_flags = (sb->s_flags & ~SB_POSIXACL) |
38fa0e8e4a3b93 Chengguang Xu     2019-05-20   944  		(test_opt(sb, POSIX_ACL) ? SB_POSIXACL : 0);
46b15caa7cb19b Tejun Heo         2015-06-16   945  	sb->s_iflags |= SB_I_CGROUPWB;
^1da177e4c3f41 Linus Torvalds    2005-04-16   946  
^1da177e4c3f41 Linus Torvalds    2005-04-16   947  	if (le32_to_cpu(es->s_rev_level) == EXT2_GOOD_OLD_REV &&
^1da177e4c3f41 Linus Torvalds    2005-04-16   948  	    (EXT2_HAS_COMPAT_FEATURE(sb, ~0U) ||
^1da177e4c3f41 Linus Torvalds    2005-04-16   949  	     EXT2_HAS_RO_COMPAT_FEATURE(sb, ~0U) ||
^1da177e4c3f41 Linus Torvalds    2005-04-16   950  	     EXT2_HAS_INCOMPAT_FEATURE(sb, ~0U)))
2314b07cb47ef7 Oleksij Rempel    2009-11-19   951  		ext2_msg(sb, KERN_WARNING,
2314b07cb47ef7 Oleksij Rempel    2009-11-19   952  			"warning: feature flags set on rev 0 fs, "
2314b07cb47ef7 Oleksij Rempel    2009-11-19   953  			"running e2fsck is recommended");
^1da177e4c3f41 Linus Torvalds    2005-04-16   954  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16   955  	 * Check feature flags regardless of the revision level, since we
^1da177e4c3f41 Linus Torvalds    2005-04-16   956  	 * previously didn't change the revision level when setting the flags,
^1da177e4c3f41 Linus Torvalds    2005-04-16   957  	 * so there is a chance incompat flags are set on a rev 0 filesystem.
^1da177e4c3f41 Linus Torvalds    2005-04-16   958  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   959  	features = EXT2_HAS_INCOMPAT_FEATURE(sb, ~EXT2_FEATURE_INCOMPAT_SUPP);
^1da177e4c3f41 Linus Torvalds    2005-04-16   960  	if (features) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19   961  		ext2_msg(sb, KERN_ERR,	"error: couldn't mount because of "
2314b07cb47ef7 Oleksij Rempel    2009-11-19   962  		       "unsupported optional features (%x)",
2314b07cb47ef7 Oleksij Rempel    2009-11-19   963  			le32_to_cpu(features));
^1da177e4c3f41 Linus Torvalds    2005-04-16   964  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16   965  	}
bc98a42c1f7d0f David Howells     2017-07-17   966  	if (!sb_rdonly(sb) && (features = EXT2_HAS_RO_COMPAT_FEATURE(sb, ~EXT2_FEATURE_RO_COMPAT_SUPP))){
2314b07cb47ef7 Oleksij Rempel    2009-11-19   967  		ext2_msg(sb, KERN_ERR, "error: couldn't mount RDWR because of "
2314b07cb47ef7 Oleksij Rempel    2009-11-19   968  		       "unsupported optional features (%x)",
2314b07cb47ef7 Oleksij Rempel    2009-11-19   969  		       le32_to_cpu(features));
^1da177e4c3f41 Linus Torvalds    2005-04-16   970  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16   971  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   972  
62aeb94433fcec Jan Kara          2023-03-01   973  	if (le32_to_cpu(es->s_log_block_size) >
62aeb94433fcec Jan Kara          2023-03-01   974  	    (EXT2_MAX_BLOCK_LOG_SIZE - BLOCK_SIZE_BITS)) {
62aeb94433fcec Jan Kara          2023-03-01   975  		ext2_msg(sb, KERN_ERR,
62aeb94433fcec Jan Kara          2023-03-01   976  			 "Invalid log block size: %u",
62aeb94433fcec Jan Kara          2023-03-01   977  			 le32_to_cpu(es->s_log_block_size));
62aeb94433fcec Jan Kara          2023-03-01   978  		goto failed_mount;
62aeb94433fcec Jan Kara          2023-03-01   979  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16   980  	blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size);
^1da177e4c3f41 Linus Torvalds    2005-04-16   981  
^1da177e4c3f41 Linus Torvalds    2005-04-16   982  	/* If the blocksize doesn't match, re-read the thing.. */
^1da177e4c3f41 Linus Torvalds    2005-04-16   983  	if (sb->s_blocksize != blocksize) {
^1da177e4c3f41 Linus Torvalds    2005-04-16   984  		brelse(bh);
^1da177e4c3f41 Linus Torvalds    2005-04-16   985  
^1da177e4c3f41 Linus Torvalds    2005-04-16   986  		if (!sb_set_blocksize(sb, blocksize)) {
4e299c1d9113b5 Robin Dong        2011-05-05   987  			ext2_msg(sb, KERN_ERR,
4e299c1d9113b5 Robin Dong        2011-05-05   988  				"error: bad blocksize %d", blocksize);
^1da177e4c3f41 Linus Torvalds    2005-04-16   989  			goto failed_sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   990  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16   991  
^1da177e4c3f41 Linus Torvalds    2005-04-16   992  		logic_sb_block = (sb_block*BLOCK_SIZE) / blocksize;
^1da177e4c3f41 Linus Torvalds    2005-04-16   993  		offset = (sb_block*BLOCK_SIZE) % blocksize;
^1da177e4c3f41 Linus Torvalds    2005-04-16   994  		bh = sb_bread(sb, logic_sb_block);
^1da177e4c3f41 Linus Torvalds    2005-04-16   995  		if(!bh) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19   996  			ext2_msg(sb, KERN_ERR, "error: couldn't read"
2314b07cb47ef7 Oleksij Rempel    2009-11-19   997  				"superblock on 2nd try");
^1da177e4c3f41 Linus Torvalds    2005-04-16   998  			goto failed_sbi;
^1da177e4c3f41 Linus Torvalds    2005-04-16   999  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1000  		es = (struct ext2_super_block *) (((char *)bh->b_data) + offset);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1001  		sbi->s_es = es;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1002  		if (es->s_magic != cpu_to_le16(EXT2_SUPER_MAGIC)) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1003  			ext2_msg(sb, KERN_ERR, "error: magic mismatch");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1004  			goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1005  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1006  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1007  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1008  	sb->s_maxbytes = ext2_max_size(sb->s_blocksize_bits);
8de52778798fe3 Al Viro           2012-02-06  1009  	sb->s_max_links = EXT2_LINK_MAX;
22b139691f9eb8 Deepa Dinamani    2019-07-30  1010  	sb->s_time_min = S32_MIN;
22b139691f9eb8 Deepa Dinamani    2019-07-30  1011  	sb->s_time_max = S32_MAX;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1012  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1013  	if (le32_to_cpu(es->s_rev_level) == EXT2_GOOD_OLD_REV) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1014  		sbi->s_inode_size = EXT2_GOOD_OLD_INODE_SIZE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1015  		sbi->s_first_ino = EXT2_GOOD_OLD_FIRST_INO;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1016  	} else {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1017  		sbi->s_inode_size = le16_to_cpu(es->s_inode_size);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1018  		sbi->s_first_ino = le32_to_cpu(es->s_first_ino);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1019  		if ((sbi->s_inode_size < EXT2_GOOD_OLD_INODE_SIZE) ||
d8ea6cf8999100 vignesh babu      2007-10-16  1020  		    !is_power_of_2(sbi->s_inode_size) ||
^1da177e4c3f41 Linus Torvalds    2005-04-16  1021  		    (sbi->s_inode_size > blocksize)) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1022  			ext2_msg(sb, KERN_ERR,
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1023  				"error: unsupported inode size: %d",
^1da177e4c3f41 Linus Torvalds    2005-04-16  1024  				sbi->s_inode_size);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1025  			goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1026  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1027  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1028  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1029  	sbi->s_blocks_per_group = le32_to_cpu(es->s_blocks_per_group);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1030  	sbi->s_inodes_per_group = le32_to_cpu(es->s_inodes_per_group);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1031  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1032  	sbi->s_inodes_per_block = sb->s_blocksize / EXT2_INODE_SIZE(sb);
607eb266aea9dd Andries Brouwer   2006-08-27  1033  	if (sbi->s_inodes_per_block == 0 || sbi->s_inodes_per_group == 0)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1034  		goto cantfind_ext2;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1035  	sbi->s_itb_per_group = sbi->s_inodes_per_group /
^1da177e4c3f41 Linus Torvalds    2005-04-16  1036  					sbi->s_inodes_per_block;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1037  	sbi->s_desc_per_block = sb->s_blocksize /
^1da177e4c3f41 Linus Torvalds    2005-04-16  1038  					sizeof (struct ext2_group_desc);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1039  	sbi->s_sbh = bh;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1040  	sbi->s_mount_state = le16_to_cpu(es->s_state);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1041  	sbi->s_addr_per_block_bits =
f0d1b0b30d250a David Howells     2006-12-08  1042  		ilog2 (EXT2_ADDR_PER_BLOCK(sb));
^1da177e4c3f41 Linus Torvalds    2005-04-16  1043  	sbi->s_desc_per_block_bits =
f0d1b0b30d250a David Howells     2006-12-08  1044  		ilog2 (EXT2_DESC_PER_BLOCK(sb));
^1da177e4c3f41 Linus Torvalds    2005-04-16  1045  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1046  	if (sb->s_magic != EXT2_SUPER_MAGIC)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1047  		goto cantfind_ext2;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1048  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1049  	if (sb->s_blocksize != bh->b_size) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1050  		if (!silent)
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1051  			ext2_msg(sb, KERN_ERR, "error: unsupported blocksize");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1052  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1053  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1054  
404615d7f1dcd4 Jan Kara          2023-06-13  1055  	if (es->s_log_frag_size != es->s_log_block_size) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1056  		ext2_msg(sb, KERN_ERR,
404615d7f1dcd4 Jan Kara          2023-06-13  1057  			"error: fragsize log %u != blocksize log %u",
404615d7f1dcd4 Jan Kara          2023-06-13  1058  			le32_to_cpu(es->s_log_frag_size), sb->s_blocksize_bits);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1059  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1060  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1061  
^1da177e4c3f41 Linus Torvalds    2005-04-16  1062  	if (sbi->s_blocks_per_group > sb->s_blocksize * 8) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1063  		ext2_msg(sb, KERN_ERR,
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1064  			"error: #blocks per group too big: %lu",
^1da177e4c3f41 Linus Torvalds    2005-04-16  1065  			sbi->s_blocks_per_group);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1066  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1067  	}
d766f2d1e3e3bd Jan Kara          2022-09-14  1068  	/* At least inode table, bitmaps, and sb have to fit in one group */
d766f2d1e3e3bd Jan Kara          2022-09-14  1069  	if (sbi->s_blocks_per_group <= sbi->s_itb_per_group + 3) {
d766f2d1e3e3bd Jan Kara          2022-09-14  1070  		ext2_msg(sb, KERN_ERR,
d766f2d1e3e3bd Jan Kara          2022-09-14  1071  			"error: #blocks per group smaller than metadata size: %lu <= %lu",
d766f2d1e3e3bd Jan Kara          2022-09-14  1072  			sbi->s_blocks_per_group, sbi->s_inodes_per_group + 3);
d766f2d1e3e3bd Jan Kara          2022-09-14  1073  		goto failed_mount;
d766f2d1e3e3bd Jan Kara          2022-09-14  1074  	}
fa78f336937240 Jan Kara          2022-07-26  1075  	if (sbi->s_inodes_per_group < sbi->s_inodes_per_block ||
fa78f336937240 Jan Kara          2022-07-26  1076  	    sbi->s_inodes_per_group > sb->s_blocksize * 8) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1077  		ext2_msg(sb, KERN_ERR,
fa78f336937240 Jan Kara          2022-07-26  1078  			"error: invalid #inodes per group: %lu",
^1da177e4c3f41 Linus Torvalds    2005-04-16  1079  			sbi->s_inodes_per_group);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1080  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1081  	}
d766f2d1e3e3bd Jan Kara          2022-09-14  1082  	if (sb_bdev_nr_blocks(sb) < le32_to_cpu(es->s_blocks_count)) {
d766f2d1e3e3bd Jan Kara          2022-09-14  1083  		ext2_msg(sb, KERN_ERR,
d766f2d1e3e3bd Jan Kara          2022-09-14  1084  			 "bad geometry: block count %u exceeds size of device (%u blocks)",
d766f2d1e3e3bd Jan Kara          2022-09-14  1085  			 le32_to_cpu(es->s_blocks_count),
d766f2d1e3e3bd Jan Kara          2022-09-14  1086  			 (unsigned)sb_bdev_nr_blocks(sb));
d766f2d1e3e3bd Jan Kara          2022-09-14  1087  		goto failed_mount;
d766f2d1e3e3bd Jan Kara          2022-09-14  1088  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1089  
41f04d852e3595 Eric Sandeen      2006-09-27  1090  	sbi->s_groups_count = ((le32_to_cpu(es->s_blocks_count) -
41f04d852e3595 Eric Sandeen      2006-09-27  1091  				le32_to_cpu(es->s_first_data_block) - 1)
41f04d852e3595 Eric Sandeen      2006-09-27  1092  					/ EXT2_BLOCKS_PER_GROUP(sb)) + 1;
fa78f336937240 Jan Kara          2022-07-26  1093  	if ((u64)sbi->s_groups_count * sbi->s_inodes_per_group !=
fa78f336937240 Jan Kara          2022-07-26  1094  	    le32_to_cpu(es->s_inodes_count)) {
fa78f336937240 Jan Kara          2022-07-26  1095  		ext2_msg(sb, KERN_ERR, "error: invalid #inodes: %u vs computed %llu",
fa78f336937240 Jan Kara          2022-07-26  1096  			 le32_to_cpu(es->s_inodes_count),
fa78f336937240 Jan Kara          2022-07-26  1097  			 (u64)sbi->s_groups_count * sbi->s_inodes_per_group);
fa78f336937240 Jan Kara          2022-07-26  1098  		goto failed_mount;
fa78f336937240 Jan Kara          2022-07-26  1099  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1100  	db_count = (sbi->s_groups_count + EXT2_DESC_PER_BLOCK(sb) - 1) /
^1da177e4c3f41 Linus Torvalds    2005-04-16  1101  		   EXT2_DESC_PER_BLOCK(sb);
32a92f8c893269 Linus Torvalds    2026-02-21  1102  	sbi->s_group_desc = kvmalloc_objs(struct buffer_head *, db_count);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1103  	if (sbi->s_group_desc == NULL) {
6a03e6a8dcf573 Chengguang Xu     2019-01-01  1104  		ret = -ENOMEM;
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1105  		ext2_msg(sb, KERN_ERR, "error: not enough memory");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1106  		goto failed_mount;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1107  	}
18a82eb9f980b5 Pekka J Enberg    2009-01-07  1108  	bgl_lock_init(sbi->s_blockgroup_lock);
dd00cc486ab1c1 Yoann Padioleau   2007-07-19  1109  	sbi->s_debts = kcalloc(sbi->s_groups_count, sizeof(*sbi->s_debts), GFP_KERNEL);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1110  	if (!sbi->s_debts) {
6a03e6a8dcf573 Chengguang Xu     2019-01-01  1111  		ret = -ENOMEM;
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1112  		ext2_msg(sb, KERN_ERR, "error: not enough memory");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1113  		goto failed_mount_group_desc;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1114  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1115  	for (i = 0; i < db_count; i++) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1116  		block = descriptor_loc(sb, logic_sb_block, i);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1117  		sbi->s_group_desc[i] = sb_bread(sb, block);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1118  		if (!sbi->s_group_desc[i]) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1119  			for (j = 0; j < i; j++)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1120  				brelse (sbi->s_group_desc[j]);
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1121  			ext2_msg(sb, KERN_ERR,
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1122  				"error: unable to read group descriptors");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1123  			goto failed_mount_group_desc;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1124  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1125  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1126  	if (!ext2_check_descriptors (sb)) {
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1127  		ext2_msg(sb, KERN_ERR, "group descriptors corrupted");
^1da177e4c3f41 Linus Torvalds    2005-04-16  1128  		goto failed_mount2;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1129  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1130  	sbi->s_gdb_count = db_count;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1131  	spin_lock_init(&sbi->s_next_gen_lock);
e76ed86ee88f68 Timothy Day       2026-08-11  1132  	scoped_guard(spinlock, &sbi->s_next_gen_lock)
e76ed86ee88f68 Timothy Day       2026-08-11  1133  		sbi->s_next_generation = get_random_u32();
0216bfcffe424a Mingming Cao      2006-06-23  1134  
e312c97ea253f0 Liu xuzhi         2021-03-18  1135  	/* per filesystem reservation list head & lock */
a686cd898bd999 Martin J. Bligh   2007-10-16  1136  	spin_lock_init(&sbi->s_rsv_window_lock);
2e918ca509ae57 Timothy Day       2026-08-11  1137  	scoped_guard(spinlock, &sbi->s_rsv_window_lock) {
a686cd898bd999 Martin J. Bligh   2007-10-16  1138  		sbi->s_rsv_window_root = RB_ROOT;
a686cd898bd999 Martin J. Bligh   2007-10-16  1139  		/*
a686cd898bd999 Martin J. Bligh   2007-10-16  1140  		 * Add a single, static dummy reservation to the start of the
a686cd898bd999 Martin J. Bligh   2007-10-16  1141  		 * reservation window list --- it gives us a placeholder for
a686cd898bd999 Martin J. Bligh   2007-10-16  1142  		 * append-at-start-of-list which makes the allocation logic
a686cd898bd999 Martin J. Bligh   2007-10-16  1143  		 * _much_ simpler.
a686cd898bd999 Martin J. Bligh   2007-10-16  1144  		 */
a686cd898bd999 Martin J. Bligh   2007-10-16  1145  		sbi->s_rsv_window_head.rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
a686cd898bd999 Martin J. Bligh   2007-10-16  1146  		sbi->s_rsv_window_head.rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
a686cd898bd999 Martin J. Bligh   2007-10-16  1147  		sbi->s_rsv_window_head.rsv_alloc_hit = 0;
a686cd898bd999 Martin J. Bligh   2007-10-16  1148  		sbi->s_rsv_window_head.rsv_goal_size = 0;
a686cd898bd999 Martin J. Bligh   2007-10-16 @1149  		ext2_rsv_window_add(sb, &sbi->s_rsv_window_head);
2e918ca509ae57 Timothy Day       2026-08-11  1150  	}
a686cd898bd999 Martin J. Bligh   2007-10-16  1151  
833f4077bf7c2d Peter Zijlstra    2007-10-16  1152  	err = percpu_counter_init(&sbi->s_freeblocks_counter,
908c7f1949cb7c Tejun Heo         2014-09-08  1153  				ext2_count_free_blocks(sb), GFP_KERNEL);
833f4077bf7c2d Peter Zijlstra    2007-10-16  1154  	if (!err) {
833f4077bf7c2d Peter Zijlstra    2007-10-16  1155  		err = percpu_counter_init(&sbi->s_freeinodes_counter,
908c7f1949cb7c Tejun Heo         2014-09-08  1156  				ext2_count_free_inodes(sb), GFP_KERNEL);
833f4077bf7c2d Peter Zijlstra    2007-10-16  1157  	}
833f4077bf7c2d Peter Zijlstra    2007-10-16  1158  	if (!err) {
833f4077bf7c2d Peter Zijlstra    2007-10-16  1159  		err = percpu_counter_init(&sbi->s_dirs_counter,
908c7f1949cb7c Tejun Heo         2014-09-08  1160  				ext2_count_dirs(sb), GFP_KERNEL);
833f4077bf7c2d Peter Zijlstra    2007-10-16  1161  	}
833f4077bf7c2d Peter Zijlstra    2007-10-16  1162  	if (err) {
34e92542da9643 Chengguang Xu     2019-11-29  1163  		ret = err;
2314b07cb47ef7 Oleksij Rempel    2009-11-19  1164  		ext2_msg(sb, KERN_ERR, "error: insufficient memory");
833f4077bf7c2d Peter Zijlstra    2007-10-16  1165  		goto failed_mount3;
833f4077bf7c2d Peter Zijlstra    2007-10-16  1166  	}
be0726d33cb8f4 Jan Kara          2016-02-22  1167  

:::::: The code at line 1149 was first introduced by commit
:::::: a686cd898bd999fd026a51e90fb0a3410d258ddb ext2 reservations

:::::: TO: Martin J. Bligh <mbligh@mbligh.org>
:::::: CC: Linus Torvalds <torvalds@woody.linux-foundation.org>

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


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-09-04 12:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-03  9:51 [linux-next:master 2657/3131] fs/ext2/super.c:1149:3: warning: calling function 'ext2_rsv_window_add' requires holding spinlock 'EXT2_SB(sb).s_rsv_window_lock' exclusively kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2026-09-04 12:21 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.