public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Mikulas Patocka <mpatocka@redhat.com>,
	Linus Torvalds <torvalds@linux-foundation.org>
Cc: oe-kbuild-all@lists.linux.dev,
	LKML <linux-kernel@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH] hpfs: obsolete check=none mount option
Date: Fri, 27 Feb 2026 22:20:43 +0800	[thread overview]
Message-ID: <202602272252.89OlLXUV-lkp@intel.com> (raw)
In-Reply-To: <fd8dabf8-f0a5-418a-9b3d-da981101ca86@I-love.SAKURA.ne.jp>

Hi Tetsuo,

kernel test robot noticed the following build warnings:

[auto build test WARNING on brauner-vfs/vfs.all]
[also build test WARNING on linus/master linux/master v7.0-rc1 next-20260226]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Tetsuo-Handa/hpfs-obsolete-check-none-mount-option/20260226-222815
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all
patch link:    https://lore.kernel.org/r/fd8dabf8-f0a5-418a-9b3d-da981101ca86%40I-love.SAKURA.ne.jp
patch subject: [PATCH] hpfs: obsolete check=none mount option
config: x86_64-randconfig-r071-20260227 (https://download.01.org/0day-ci/archive/20260227/202602272252.89OlLXUV-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch version: v0.5.0-8994-gd50c5a4c

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/202602272252.89OlLXUV-lkp@intel.com/

New smatch warnings:
fs/hpfs/anode.c:92 hpfs_add_sector_to_btree() warn: inconsistent indenting
fs/hpfs/anode.c:289 hpfs_remove_btree() warn: inconsistent indenting
fs/hpfs/anode.c:444 hpfs_truncate_btree() warn: inconsistent indenting
fs/hpfs/dnode.c:445 move_to_top() warn: inconsistent indenting
fs/hpfs/dnode.c:547 delete_empty_dnode() warn: inconsistent indenting
fs/hpfs/dnode.c:751 hpfs_count_dnodes() warn: inconsistent indenting
fs/hpfs/dnode.c:824 hpfs_de_as_down_as_possible() warn: inconsistent indenting
fs/hpfs/dnode.c:1056 map_fnode_dirent() warn: inconsistent indenting

Old smatch warnings:
fs/hpfs/anode.c:167 hpfs_add_sector_to_btree() warn: inconsistent indenting
fs/hpfs/anode.c:301 hpfs_remove_btree() warn: inconsistent indenting
fs/hpfs/anode.c:322 hpfs_remove_btree() warn: passing freed memory 'bh' (line 300)
fs/hpfs/anode.c:452 hpfs_truncate_btree() warn: passing freed memory 'bh' (line 443)
fs/hpfs/anode.c:470 hpfs_truncate_btree() warn: passing freed memory 'bh' (line 443)
fs/hpfs/dnode.c:47 hpfs_add_pos() error: we previously assumed 'hpfs_inode->i_rddir_off' could be null (see line 31)
fs/hpfs/dnode.c:786 hpfs_count_dnodes() warn: inconsistent indenting
fs/hpfs/dnode.c:1074 map_fnode_dirent() warn: inconsistent indenting

vim +92 fs/hpfs/anode.c

^1da177e4c3f41 Linus Torvalds      2005-04-16   60  
^1da177e4c3f41 Linus Torvalds      2005-04-16   61  secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsigned fsecno)
^1da177e4c3f41 Linus Torvalds      2005-04-16   62  {
^1da177e4c3f41 Linus Torvalds      2005-04-16   63  	struct bplus_header *btree;
^1da177e4c3f41 Linus Torvalds      2005-04-16   64  	struct anode *anode = NULL, *ranode = NULL;
^1da177e4c3f41 Linus Torvalds      2005-04-16   65  	struct fnode *fnode;
^1da177e4c3f41 Linus Torvalds      2005-04-16   66  	anode_secno a, na = -1, ra, up = -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16   67  	secno se;
^1da177e4c3f41 Linus Torvalds      2005-04-16   68  	struct buffer_head *bh, *bh1, *bh2;
^1da177e4c3f41 Linus Torvalds      2005-04-16   69  	int n;
^1da177e4c3f41 Linus Torvalds      2005-04-16   70  	unsigned fs;
^1da177e4c3f41 Linus Torvalds      2005-04-16   71  	int c1, c2 = 0;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11   72  
^1da177e4c3f41 Linus Torvalds      2005-04-16   73  	if (fnod) {
^1da177e4c3f41 Linus Torvalds      2005-04-16   74  		if (!(fnode = hpfs_map_fnode(s, node, &bh))) return -1;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11   75  		btree = GET_BTREE_PTR(&fnode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16   76  	} else {
^1da177e4c3f41 Linus Torvalds      2005-04-16   77  		if (!(anode = hpfs_map_anode(s, node, &bh))) return -1;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11   78  		btree = GET_BTREE_PTR(&anode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16   79  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16   80  	a = node;
^1da177e4c3f41 Linus Torvalds      2005-04-16   81  	go_down:
^1da177e4c3f41 Linus Torvalds      2005-04-16   82  	if ((n = btree->n_used_nodes - 1) < -!!fnod) {
^1da177e4c3f41 Linus Torvalds      2005-04-16   83  		hpfs_error(s, "anode %08x has no entries", a);
^1da177e4c3f41 Linus Torvalds      2005-04-16   84  		brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16   85  		return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16   86  	}
ddc19e6e04c113 Al Viro             2012-04-17   87  	if (bp_internal(btree)) {
0b69760be6968c Mikulas Patocka     2011-05-08   88  		a = le32_to_cpu(btree->u.internal[n].down);
0b69760be6968c Mikulas Patocka     2011-05-08   89  		btree->u.internal[n].file_secno = cpu_to_le32(-1);
^1da177e4c3f41 Linus Torvalds      2005-04-16   90  		mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16   91  		brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  @92  			if (hpfs_stop_cycles(s, a, &c1, &c2, "hpfs_add_sector_to_btree #1")) return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16   93  		if (!(anode = hpfs_map_anode(s, a, &bh))) return -1;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11   94  		btree = GET_BTREE_PTR(&anode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16   95  		goto go_down;
^1da177e4c3f41 Linus Torvalds      2005-04-16   96  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16   97  	if (n >= 0) {
0b69760be6968c Mikulas Patocka     2011-05-08   98  		if (le32_to_cpu(btree->u.external[n].file_secno) + le32_to_cpu(btree->u.external[n].length) != fsecno) {
^1da177e4c3f41 Linus Torvalds      2005-04-16   99  			hpfs_error(s, "allocated size %08x, trying to add sector %08x, %cnode %08x",
0b69760be6968c Mikulas Patocka     2011-05-08  100  				le32_to_cpu(btree->u.external[n].file_secno) + le32_to_cpu(btree->u.external[n].length), fsecno,
^1da177e4c3f41 Linus Torvalds      2005-04-16  101  				fnod?'f':'a', node);
^1da177e4c3f41 Linus Torvalds      2005-04-16  102  			brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  103  			return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  104  		}
0b69760be6968c Mikulas Patocka     2011-05-08  105  		if (hpfs_alloc_if_possible(s, se = le32_to_cpu(btree->u.external[n].disk_secno) + le32_to_cpu(btree->u.external[n].length))) {
32daab969cc16e Wei Yongjun         2012-10-04  106  			le32_add_cpu(&btree->u.external[n].length, 1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  107  			mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  108  			brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  109  			return se;
^1da177e4c3f41 Linus Torvalds      2005-04-16  110  		}
^1da177e4c3f41 Linus Torvalds      2005-04-16  111  	} else {
^1da177e4c3f41 Linus Torvalds      2005-04-16  112  		if (fsecno) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  113  			hpfs_error(s, "empty file %08x, trying to add sector %08x", node, fsecno);
^1da177e4c3f41 Linus Torvalds      2005-04-16  114  			brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  115  			return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  116  		}
^1da177e4c3f41 Linus Torvalds      2005-04-16  117  		se = !fnod ? node : (node + 16384) & ~16383;
^1da177e4c3f41 Linus Torvalds      2005-04-16  118  	}	
7d23ce36e3f52f Mikulas Patocka     2011-05-08  119  	if (!(se = hpfs_alloc_sector(s, se, 1, fsecno*ALLOC_M>ALLOC_FWD_MAX ? ALLOC_FWD_MAX : fsecno*ALLOC_M<ALLOC_FWD_MIN ? ALLOC_FWD_MIN : fsecno*ALLOC_M))) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  120  		brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  121  		return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  122  	}
0b69760be6968c Mikulas Patocka     2011-05-08  123  	fs = n < 0 ? 0 : le32_to_cpu(btree->u.external[n].file_secno) + le32_to_cpu(btree->u.external[n].length);
^1da177e4c3f41 Linus Torvalds      2005-04-16  124  	if (!btree->n_free_nodes) {
0b69760be6968c Mikulas Patocka     2011-05-08  125  		up = a != node ? le32_to_cpu(anode->up) : -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  126  		if (!(anode = hpfs_alloc_anode(s, a, &na, &bh1))) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  127  			brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  128  			hpfs_free_sectors(s, se, 1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  129  			return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  130  		}
^1da177e4c3f41 Linus Torvalds      2005-04-16  131  		if (a == node && fnod) {
0b69760be6968c Mikulas Patocka     2011-05-08  132  			anode->up = cpu_to_le32(node);
ddc19e6e04c113 Al Viro             2012-04-17  133  			anode->btree.flags |= BP_fnode_parent;
^1da177e4c3f41 Linus Torvalds      2005-04-16  134  			anode->btree.n_used_nodes = btree->n_used_nodes;
^1da177e4c3f41 Linus Torvalds      2005-04-16  135  			anode->btree.first_free = btree->first_free;
^1da177e4c3f41 Linus Torvalds      2005-04-16  136  			anode->btree.n_free_nodes = 40 - anode->btree.n_used_nodes;
^1da177e4c3f41 Linus Torvalds      2005-04-16  137  			memcpy(&anode->u, &btree->u, btree->n_used_nodes * 12);
ddc19e6e04c113 Al Viro             2012-04-17  138  			btree->flags |= BP_internal;
^1da177e4c3f41 Linus Torvalds      2005-04-16  139  			btree->n_free_nodes = 11;
^1da177e4c3f41 Linus Torvalds      2005-04-16  140  			btree->n_used_nodes = 1;
0b69760be6968c Mikulas Patocka     2011-05-08  141  			btree->first_free = cpu_to_le16((char *)&(btree->u.internal[1]) - (char *)btree);
0b69760be6968c Mikulas Patocka     2011-05-08  142  			btree->u.internal[0].file_secno = cpu_to_le32(-1);
0b69760be6968c Mikulas Patocka     2011-05-08  143  			btree->u.internal[0].down = cpu_to_le32(na);
^1da177e4c3f41 Linus Torvalds      2005-04-16  144  			mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  145  		} else if (!(ranode = hpfs_alloc_anode(s, /*a*/0, &ra, &bh2))) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  146  			brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  147  			brelse(bh1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  148  			hpfs_free_sectors(s, se, 1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  149  			hpfs_free_sectors(s, na, 1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  150  			return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  151  		}
^1da177e4c3f41 Linus Torvalds      2005-04-16  152  		brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  153  		bh = bh1;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  154  		btree = GET_BTREE_PTR(&anode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16  155  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16  156  	btree->n_free_nodes--; n = btree->n_used_nodes++;
32daab969cc16e Wei Yongjun         2012-10-04  157  	le16_add_cpu(&btree->first_free, 12);
0b69760be6968c Mikulas Patocka     2011-05-08  158  	btree->u.external[n].disk_secno = cpu_to_le32(se);
0b69760be6968c Mikulas Patocka     2011-05-08  159  	btree->u.external[n].file_secno = cpu_to_le32(fs);
0b69760be6968c Mikulas Patocka     2011-05-08  160  	btree->u.external[n].length = cpu_to_le32(1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  161  	mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  162  	brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  163  	if ((a == node && fnod) || na == -1) return se;
^1da177e4c3f41 Linus Torvalds      2005-04-16  164  	c2 = 0;
0b69760be6968c Mikulas Patocka     2011-05-08  165  	while (up != (anode_secno)-1) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  166  		struct anode *new_anode;
^1da177e4c3f41 Linus Torvalds      2005-04-16  167  			if (hpfs_stop_cycles(s, up, &c1, &c2, "hpfs_add_sector_to_btree #2")) return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  168  		if (up != node || !fnod) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  169  			if (!(anode = hpfs_map_anode(s, up, &bh))) return -1;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  170  			btree = GET_BTREE_PTR(&anode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16  171  		} else {
^1da177e4c3f41 Linus Torvalds      2005-04-16  172  			if (!(fnode = hpfs_map_fnode(s, up, &bh))) return -1;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  173  			btree = GET_BTREE_PTR(&fnode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16  174  		}
^1da177e4c3f41 Linus Torvalds      2005-04-16  175  		if (btree->n_free_nodes) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  176  			btree->n_free_nodes--; n = btree->n_used_nodes++;
32daab969cc16e Wei Yongjun         2012-10-04  177  			le16_add_cpu(&btree->first_free, 8);
0b69760be6968c Mikulas Patocka     2011-05-08  178  			btree->u.internal[n].file_secno = cpu_to_le32(-1);
0b69760be6968c Mikulas Patocka     2011-05-08  179  			btree->u.internal[n].down = cpu_to_le32(na);
0b69760be6968c Mikulas Patocka     2011-05-08  180  			btree->u.internal[n-1].file_secno = cpu_to_le32(fs);
^1da177e4c3f41 Linus Torvalds      2005-04-16  181  			mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  182  			brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  183  			brelse(bh2);
^1da177e4c3f41 Linus Torvalds      2005-04-16  184  			hpfs_free_sectors(s, ra, 1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  185  			if ((anode = hpfs_map_anode(s, na, &bh))) {
0b69760be6968c Mikulas Patocka     2011-05-08  186  				anode->up = cpu_to_le32(up);
ddc19e6e04c113 Al Viro             2012-04-17  187  				if (up == node && fnod)
ddc19e6e04c113 Al Viro             2012-04-17  188  					anode->btree.flags |= BP_fnode_parent;
ddc19e6e04c113 Al Viro             2012-04-17  189  				else
ddc19e6e04c113 Al Viro             2012-04-17  190  					anode->btree.flags &= ~BP_fnode_parent;
^1da177e4c3f41 Linus Torvalds      2005-04-16  191  				mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  192  				brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  193  			}
^1da177e4c3f41 Linus Torvalds      2005-04-16  194  			return se;
^1da177e4c3f41 Linus Torvalds      2005-04-16  195  		}
0b69760be6968c Mikulas Patocka     2011-05-08  196  		up = up != node ? le32_to_cpu(anode->up) : -1;
0b69760be6968c Mikulas Patocka     2011-05-08  197  		btree->u.internal[btree->n_used_nodes - 1].file_secno = cpu_to_le32(/*fs*/-1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  198  		mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  199  		brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  200  		a = na;
^1da177e4c3f41 Linus Torvalds      2005-04-16  201  		if ((new_anode = hpfs_alloc_anode(s, a, &na, &bh))) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  202  			anode = new_anode;
0b69760be6968c Mikulas Patocka     2011-05-08  203  			/*anode->up = cpu_to_le32(up != -1 ? up : ra);*/
ddc19e6e04c113 Al Viro             2012-04-17  204  			anode->btree.flags |= BP_internal;
^1da177e4c3f41 Linus Torvalds      2005-04-16  205  			anode->btree.n_used_nodes = 1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  206  			anode->btree.n_free_nodes = 59;
0b69760be6968c Mikulas Patocka     2011-05-08  207  			anode->btree.first_free = cpu_to_le16(16);
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  208  			GET_BTREE_PTR(&anode->btree)->u.internal[0].down = cpu_to_le32(a);
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  209  			GET_BTREE_PTR(&anode->btree)->u.internal[0].file_secno = cpu_to_le32(-1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  210  			mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  211  			brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  212  			if ((anode = hpfs_map_anode(s, a, &bh))) {
0b69760be6968c Mikulas Patocka     2011-05-08  213  				anode->up = cpu_to_le32(na);
^1da177e4c3f41 Linus Torvalds      2005-04-16  214  				mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  215  				brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  216  			}
^1da177e4c3f41 Linus Torvalds      2005-04-16  217  		} else na = a;
^1da177e4c3f41 Linus Torvalds      2005-04-16  218  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16  219  	if ((anode = hpfs_map_anode(s, na, &bh))) {
0b69760be6968c Mikulas Patocka     2011-05-08  220  		anode->up = cpu_to_le32(node);
ddc19e6e04c113 Al Viro             2012-04-17  221  		if (fnod)
ddc19e6e04c113 Al Viro             2012-04-17  222  			anode->btree.flags |= BP_fnode_parent;
^1da177e4c3f41 Linus Torvalds      2005-04-16  223  		mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  224  		brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  225  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16  226  	if (!fnod) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  227  		if (!(anode = hpfs_map_anode(s, node, &bh))) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  228  			brelse(bh2);
^1da177e4c3f41 Linus Torvalds      2005-04-16  229  			return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  230  		}
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  231  		btree = GET_BTREE_PTR(&anode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16  232  	} else {
^1da177e4c3f41 Linus Torvalds      2005-04-16  233  		if (!(fnode = hpfs_map_fnode(s, node, &bh))) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  234  			brelse(bh2);
^1da177e4c3f41 Linus Torvalds      2005-04-16  235  			return -1;
^1da177e4c3f41 Linus Torvalds      2005-04-16  236  		}
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  237  		btree = GET_BTREE_PTR(&fnode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16  238  	}
0b69760be6968c Mikulas Patocka     2011-05-08  239  	ranode->up = cpu_to_le32(node);
0b69760be6968c Mikulas Patocka     2011-05-08  240  	memcpy(&ranode->btree, btree, le16_to_cpu(btree->first_free));
ddc19e6e04c113 Al Viro             2012-04-17  241  	if (fnod)
ddc19e6e04c113 Al Viro             2012-04-17  242  		ranode->btree.flags |= BP_fnode_parent;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  243  	GET_BTREE_PTR(&ranode->btree)->n_free_nodes = (bp_internal(GET_BTREE_PTR(&ranode->btree)) ? 60 : 40) - GET_BTREE_PTR(&ranode->btree)->n_used_nodes;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  244  	if (bp_internal(GET_BTREE_PTR(&ranode->btree))) for (n = 0; n < GET_BTREE_PTR(&ranode->btree)->n_used_nodes; n++) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  245  		struct anode *unode;
0b69760be6968c Mikulas Patocka     2011-05-08  246  		if ((unode = hpfs_map_anode(s, le32_to_cpu(ranode->u.internal[n].down), &bh1))) {
0b69760be6968c Mikulas Patocka     2011-05-08  247  			unode->up = cpu_to_le32(ra);
ddc19e6e04c113 Al Viro             2012-04-17  248  			unode->btree.flags &= ~BP_fnode_parent;
^1da177e4c3f41 Linus Torvalds      2005-04-16  249  			mark_buffer_dirty(bh1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  250  			brelse(bh1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  251  		}
^1da177e4c3f41 Linus Torvalds      2005-04-16  252  	}
ddc19e6e04c113 Al Viro             2012-04-17  253  	btree->flags |= BP_internal;
^1da177e4c3f41 Linus Torvalds      2005-04-16  254  	btree->n_free_nodes = fnod ? 10 : 58;
^1da177e4c3f41 Linus Torvalds      2005-04-16  255  	btree->n_used_nodes = 2;
0b69760be6968c Mikulas Patocka     2011-05-08  256  	btree->first_free = cpu_to_le16((char *)&btree->u.internal[2] - (char *)btree);
0b69760be6968c Mikulas Patocka     2011-05-08  257  	btree->u.internal[0].file_secno = cpu_to_le32(fs);
0b69760be6968c Mikulas Patocka     2011-05-08  258  	btree->u.internal[0].down = cpu_to_le32(ra);
0b69760be6968c Mikulas Patocka     2011-05-08  259  	btree->u.internal[1].file_secno = cpu_to_le32(-1);
0b69760be6968c Mikulas Patocka     2011-05-08  260  	btree->u.internal[1].down = cpu_to_le32(na);
^1da177e4c3f41 Linus Torvalds      2005-04-16  261  	mark_buffer_dirty(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  262  	brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  263  	mark_buffer_dirty(bh2);
^1da177e4c3f41 Linus Torvalds      2005-04-16  264  	brelse(bh2);
^1da177e4c3f41 Linus Torvalds      2005-04-16  265  	return se;
^1da177e4c3f41 Linus Torvalds      2005-04-16  266  }
^1da177e4c3f41 Linus Torvalds      2005-04-16  267  
^1da177e4c3f41 Linus Torvalds      2005-04-16  268  /*
^1da177e4c3f41 Linus Torvalds      2005-04-16  269   * Remove allocation tree. Recursion would look much nicer but
^1da177e4c3f41 Linus Torvalds      2005-04-16  270   * I want to avoid it because it can cause stack overflow.
^1da177e4c3f41 Linus Torvalds      2005-04-16  271   */
^1da177e4c3f41 Linus Torvalds      2005-04-16  272  
^1da177e4c3f41 Linus Torvalds      2005-04-16  273  void hpfs_remove_btree(struct super_block *s, struct bplus_header *btree)
^1da177e4c3f41 Linus Torvalds      2005-04-16  274  {
^1da177e4c3f41 Linus Torvalds      2005-04-16  275  	struct bplus_header *btree1 = btree;
^1da177e4c3f41 Linus Torvalds      2005-04-16  276  	struct anode *anode = NULL;
^1da177e4c3f41 Linus Torvalds      2005-04-16  277  	anode_secno ano = 0, oano;
^1da177e4c3f41 Linus Torvalds      2005-04-16  278  	struct buffer_head *bh;
^1da177e4c3f41 Linus Torvalds      2005-04-16  279  	int level = 0;
^1da177e4c3f41 Linus Torvalds      2005-04-16  280  	int pos = 0;
^1da177e4c3f41 Linus Torvalds      2005-04-16  281  	int i;
^1da177e4c3f41 Linus Torvalds      2005-04-16  282  	int c1, c2 = 0;
^1da177e4c3f41 Linus Torvalds      2005-04-16  283  	int d1, d2;
^1da177e4c3f41 Linus Torvalds      2005-04-16  284  	go_down:
^1da177e4c3f41 Linus Torvalds      2005-04-16  285  	d2 = 0;
ddc19e6e04c113 Al Viro             2012-04-17  286  	while (bp_internal(btree1)) {
0b69760be6968c Mikulas Patocka     2011-05-08  287  		ano = le32_to_cpu(btree1->u.internal[pos].down);
^1da177e4c3f41 Linus Torvalds      2005-04-16  288  		if (level) brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16 @289  			if (hpfs_stop_cycles(s, ano, &d1, &d2, "hpfs_remove_btree #1"))
^1da177e4c3f41 Linus Torvalds      2005-04-16  290  				return;
^1da177e4c3f41 Linus Torvalds      2005-04-16  291  		if (!(anode = hpfs_map_anode(s, ano, &bh))) return;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  292  		btree1 = GET_BTREE_PTR(&anode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16  293  		level++;
^1da177e4c3f41 Linus Torvalds      2005-04-16  294  		pos = 0;
^1da177e4c3f41 Linus Torvalds      2005-04-16  295  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16  296  	for (i = 0; i < btree1->n_used_nodes; i++)
0b69760be6968c Mikulas Patocka     2011-05-08  297  		hpfs_free_sectors(s, le32_to_cpu(btree1->u.external[i].disk_secno), le32_to_cpu(btree1->u.external[i].length));
^1da177e4c3f41 Linus Torvalds      2005-04-16  298  	go_up:
^1da177e4c3f41 Linus Torvalds      2005-04-16  299  	if (!level) return;
^1da177e4c3f41 Linus Torvalds      2005-04-16  300  	brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  301  		if (hpfs_stop_cycles(s, ano, &c1, &c2, "hpfs_remove_btree #2")) return;
^1da177e4c3f41 Linus Torvalds      2005-04-16  302  	hpfs_free_sectors(s, ano, 1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  303  	oano = ano;
0b69760be6968c Mikulas Patocka     2011-05-08  304  	ano = le32_to_cpu(anode->up);
^1da177e4c3f41 Linus Torvalds      2005-04-16  305  	if (--level) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  306  		if (!(anode = hpfs_map_anode(s, ano, &bh))) return;
68a74490629eb6 Gustavo A. R. Silva 2025-08-11  307  		btree1 = GET_BTREE_PTR(&anode->btree);
^1da177e4c3f41 Linus Torvalds      2005-04-16  308  	} else btree1 = btree;
^1da177e4c3f41 Linus Torvalds      2005-04-16  309  	for (i = 0; i < btree1->n_used_nodes; i++) {
0b69760be6968c Mikulas Patocka     2011-05-08  310  		if (le32_to_cpu(btree1->u.internal[i].down) == oano) {
^1da177e4c3f41 Linus Torvalds      2005-04-16  311  			if ((pos = i + 1) < btree1->n_used_nodes)
^1da177e4c3f41 Linus Torvalds      2005-04-16  312  				goto go_down;
^1da177e4c3f41 Linus Torvalds      2005-04-16  313  			else
^1da177e4c3f41 Linus Torvalds      2005-04-16  314  				goto go_up;
^1da177e4c3f41 Linus Torvalds      2005-04-16  315  		}
^1da177e4c3f41 Linus Torvalds      2005-04-16  316  	}
^1da177e4c3f41 Linus Torvalds      2005-04-16  317  	hpfs_error(s,
^1da177e4c3f41 Linus Torvalds      2005-04-16  318  		   "reference to anode %08x not found in anode %08x "
^1da177e4c3f41 Linus Torvalds      2005-04-16  319  		   "(probably bad up pointer)",
^1da177e4c3f41 Linus Torvalds      2005-04-16  320  		   oano, level ? ano : -1);
^1da177e4c3f41 Linus Torvalds      2005-04-16  321  	if (level)
^1da177e4c3f41 Linus Torvalds      2005-04-16  322  		brelse(bh);
^1da177e4c3f41 Linus Torvalds      2005-04-16  323  }
^1da177e4c3f41 Linus Torvalds      2005-04-16  324  

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

  reply	other threads:[~2026-02-27 14:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-26 13:19 [PATCH] hpfs: obsolete check=none mount option Tetsuo Handa
2026-02-27 14:20 ` kernel test robot [this message]
2026-03-12 13:24 ` Tetsuo Handa
2026-03-23 13:38   ` Tetsuo Handa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202602272252.89OlLXUV-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpatocka@redhat.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox