All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Goldwyn Rodrigues <rgoldwyn@suse.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [goldwynr:iomap.1 20/21] fs/btrfs/file.c:1380:58: error: 'num_pages' undeclared; did you mean 'dir_pages'?
Date: Wed, 15 May 2024 00:29:03 +0800	[thread overview]
Message-ID: <202405150032.3cTJYo8h-lkp@intel.com> (raw)

tree:   https://github.com/goldwynr/linux iomap.1
head:   18dabc17c9eeef85c6c8addf9fec377cfa3d685c
commit: 45eacf0a5df755882983e869171c18304be7dbfd [20/21] btrfs: carve out btrfs_buffered_iomap_begin from write path
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20240515/202405150032.3cTJYo8h-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240515/202405150032.3cTJYo8h-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/202405150032.3cTJYo8h-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   fs/btrfs/file.c: In function 'btrfs_buffered_write':
>> fs/btrfs/file.c:1380:58: error: 'num_pages' undeclared (first use in this function); did you mean 'dir_pages'?
    1380 |                         btrfs_drop_pages(fs_info, pages, num_pages, pos, copied);
         |                                                          ^~~~~~~~~
         |                                                          dir_pages
   fs/btrfs/file.c:1380:58: note: each undeclared identifier is reported only once for each function it appears in
   fs/btrfs/file.c: At top level:
>> fs/btrfs/file.c:932:21: warning: 'prepare_pages' defined but not used [-Wunused-function]
     932 | static noinline int prepare_pages(struct inode *inode, struct page **pages,
         |                     ^~~~~~~~~~~~~


vim +1380 fs/btrfs/file.c

45eacf0a5df755 Goldwyn Rodrigues  2024-05-10  1253  
e4af400a9c5081 Goldwyn Rodrigues  2018-06-17  1254  static noinline ssize_t btrfs_buffered_write(struct kiocb *iocb,
e4af400a9c5081 Goldwyn Rodrigues  2018-06-17  1255  					       struct iov_iter *i)
39279cc3d2704c Chris Mason        2007-06-12  1256  {
e4af400a9c5081 Goldwyn Rodrigues  2018-06-17  1257  	struct file *file = iocb->ki_filp;
c352370633400d Goldwyn Rodrigues  2020-09-24  1258  	loff_t pos;
496ad9aa8ef448 Al Viro            2013-01-23  1259  	struct inode *inode = file_inode(file);
41044b41ad2c8c David Sterba       2023-09-14  1260  	struct btrfs_fs_info *fs_info = inode_to_fs_info(inode);
11c65dccf70be9 Josef Bacik        2010-05-23  1261  	struct page **pages = NULL;
7ee9e4405f264e Josef Bacik        2013-06-21  1262  	u64 release_bytes = 0;
d0215f3e5ebb58 Josef Bacik        2011-01-25  1263  	size_t num_written = 0;
d0215f3e5ebb58 Josef Bacik        2011-01-25  1264  	int nrptrs;
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1265  	int ret;
5e8b9ef30392bb Goldwyn Rodrigues  2020-09-24  1266  	loff_t old_isize = i_size_read(inode);
c352370633400d Goldwyn Rodrigues  2020-09-24  1267  	unsigned int ilock_flags = 0;
304e45acdb8f68 Stefan Roesch      2022-09-12  1268  	const bool nowait = (iocb->ki_flags & IOCB_NOWAIT);
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1269  	struct btrfs_iomap *bi = NULL;
c352370633400d Goldwyn Rodrigues  2020-09-24  1270  
304e45acdb8f68 Stefan Roesch      2022-09-12  1271  	if (nowait)
c352370633400d Goldwyn Rodrigues  2020-09-24  1272  		ilock_flags |= BTRFS_ILOCK_TRY;
c352370633400d Goldwyn Rodrigues  2020-09-24  1273  
29b6352b1494bd David Sterba       2022-10-27  1274  	ret = btrfs_inode_lock(BTRFS_I(inode), ilock_flags);
c352370633400d Goldwyn Rodrigues  2020-09-24  1275  	if (ret < 0)
c352370633400d Goldwyn Rodrigues  2020-09-24  1276  		return ret;
4b46fce23349bf Josef Bacik        2010-05-23  1277  
c352370633400d Goldwyn Rodrigues  2020-09-24  1278  	ret = generic_write_checks(iocb, i);
c352370633400d Goldwyn Rodrigues  2020-09-24  1279  	if (ret <= 0)
c352370633400d Goldwyn Rodrigues  2020-09-24  1280  		goto out;
c352370633400d Goldwyn Rodrigues  2020-09-24  1281  
c352370633400d Goldwyn Rodrigues  2020-09-24  1282  	ret = btrfs_write_check(iocb, i, ret);
c352370633400d Goldwyn Rodrigues  2020-09-24  1283  	if (ret < 0)
c352370633400d Goldwyn Rodrigues  2020-09-24  1284  		goto out;
c352370633400d Goldwyn Rodrigues  2020-09-24  1285  
c352370633400d Goldwyn Rodrigues  2020-09-24  1286  	pos = iocb->ki_pos;
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01  1287  	nrptrs = min(DIV_ROUND_UP(iov_iter_count(i), PAGE_SIZE),
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01  1288  			PAGE_SIZE / (sizeof(struct page *)));
142349f541d0bb Wu Fengguang       2011-12-16  1289  	nrptrs = min(nrptrs, current->nr_dirtied_pause - current->nr_dirtied);
142349f541d0bb Wu Fengguang       2011-12-16  1290  	nrptrs = max(nrptrs, 8);
31e818fe7375d6 David Sterba       2015-02-20  1291  	pages = kmalloc_array(nrptrs, sizeof(struct page *), GFP_KERNEL);
c352370633400d Goldwyn Rodrigues  2020-09-24  1292  	if (!pages) {
c352370633400d Goldwyn Rodrigues  2020-09-24  1293  		ret = -ENOMEM;
c352370633400d Goldwyn Rodrigues  2020-09-24  1294  		goto out;
c352370633400d Goldwyn Rodrigues  2020-09-24  1295  	}
ab93dbecfba72b Chris Mason        2009-10-01  1296  
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1297  	bi = kzalloc(sizeof(struct btrfs_iomap), GFP_NOFS);
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1298  	if (!bi) {
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1299  		ret = -ENOMEM;
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1300  		goto out;
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1301  	}
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1302  
d0215f3e5ebb58 Josef Bacik        2011-01-25  1303  	while (iov_iter_count(i) > 0) {
7073017aeb98db Johannes Thumshirn 2018-12-05  1304  		size_t offset = offset_in_page(pos);
45eacf0a5df755 Goldwyn Rodrigues  2024-05-10  1305  		size_t sector_offset = pos & (fs_info->sectorsize - 1);
d0215f3e5ebb58 Josef Bacik        2011-01-25  1306  		size_t write_bytes = min(iov_iter_count(i),
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01  1307  					 nrptrs * (size_t)PAGE_SIZE -
8c2383c3dd2cb5 Chris Mason        2007-06-18  1308  					 offset);
d0215f3e5ebb58 Josef Bacik        2011-01-25  1309  		size_t dirty_pages;
d0215f3e5ebb58 Josef Bacik        2011-01-25  1310  		size_t copied;
2e78c927d79333 Chandan Rajendra   2016-01-21  1311  		size_t dirty_sectors;
2e78c927d79333 Chandan Rajendra   2016-01-21  1312  		size_t num_sectors;
39279cc3d2704c Chris Mason        2007-06-12  1313  
45eacf0a5df755 Goldwyn Rodrigues  2024-05-10  1314  		ret = btrfs_buffered_iomap_begin(inode, pos, write_bytes, bi);
45eacf0a5df755 Goldwyn Rodrigues  2024-05-10  1315  		if (ret < 0)
45eacf0a5df755 Goldwyn Rodrigues  2024-05-10  1316  			goto out;
376cc685cb3b43 Miao Xie           2013-12-10  1317  
ee22f0c4ec428e Zhao Lei           2016-01-06  1318  		copied = btrfs_copy_from_user(pos, write_bytes, pages, i);
b1bf862e9dad43 Chris Mason        2011-02-28  1319  
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1320  		num_sectors = BTRFS_BYTES_TO_BLKS(fs_info, bi->reserved_bytes);
56244ef151c3cd Chris Mason        2016-05-16  1321  		dirty_sectors = round_up(copied + sector_offset,
0b246afa62b0cf Jeff Mahoney       2016-06-22  1322  					fs_info->sectorsize);
0b246afa62b0cf Jeff Mahoney       2016-06-22  1323  		dirty_sectors = BTRFS_BYTES_TO_BLKS(fs_info, dirty_sectors);
56244ef151c3cd Chris Mason        2016-05-16  1324  
b1bf862e9dad43 Chris Mason        2011-02-28  1325  		/*
b1bf862e9dad43 Chris Mason        2011-02-28  1326  		 * if we have trouble faulting in the pages, fall
b1bf862e9dad43 Chris Mason        2011-02-28  1327  		 * back to one page at a time
b1bf862e9dad43 Chris Mason        2011-02-28  1328  		 */
b1bf862e9dad43 Chris Mason        2011-02-28  1329  		if (copied < write_bytes)
b1bf862e9dad43 Chris Mason        2011-02-28  1330  			nrptrs = 1;
b1bf862e9dad43 Chris Mason        2011-02-28  1331  
b6316429af7f36 Josef Bacik        2011-09-30  1332  		if (copied == 0) {
56244ef151c3cd Chris Mason        2016-05-16  1333  			dirty_sectors = 0;
b1bf862e9dad43 Chris Mason        2011-02-28  1334  			dirty_pages = 0;
b6316429af7f36 Josef Bacik        2011-09-30  1335  		} else {
ed6078f70335f1 David Sterba       2014-06-05  1336  			dirty_pages = DIV_ROUND_UP(copied + offset,
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01  1337  						   PAGE_SIZE);
b6316429af7f36 Josef Bacik        2011-09-30  1338  		}
914ee295af418e Xin Zhong          2010-12-09  1339  
2e78c927d79333 Chandan Rajendra   2016-01-21  1340  		if (num_sectors > dirty_sectors) {
8b8b08cbfb9021 Chris Mason        2016-07-19  1341  			/* release everything except the sectors we dirtied */
265fdfa6ce0a79 David Sterba       2020-07-01  1342  			release_bytes -= dirty_sectors << fs_info->sectorsize_bits;
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1343  			if (bi->metadata_only) {
691fa059673b3b Nikolay Borisov    2017-02-20  1344  				btrfs_delalloc_release_metadata(BTRFS_I(inode),
43b18595d6603c Qu Wenruo          2017-12-12  1345  							release_bytes, true);
485290a734f142 Qu Wenruo          2015-10-29  1346  			} else {
485290a734f142 Qu Wenruo          2015-10-29  1347  				u64 __pos;
485290a734f142 Qu Wenruo          2015-10-29  1348  
da17066c40472c Jeff Mahoney       2016-06-15  1349  				__pos = round_down(pos,
0b246afa62b0cf Jeff Mahoney       2016-06-22  1350  						   fs_info->sectorsize) +
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01  1351  					(dirty_pages << PAGE_SHIFT);
86d52921a2ba51 Nikolay Borisov    2020-06-03  1352  				btrfs_delalloc_release_space(BTRFS_I(inode),
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1353  						bi->data_reserved, __pos,
43b18595d6603c Qu Wenruo          2017-12-12  1354  						release_bytes, true);
914ee295af418e Xin Zhong          2010-12-09  1355  			}
485290a734f142 Qu Wenruo          2015-10-29  1356  		}
914ee295af418e Xin Zhong          2010-12-09  1357  
2e78c927d79333 Chandan Rajendra   2016-01-21  1358  		release_bytes = round_up(copied + sector_offset,
0b246afa62b0cf Jeff Mahoney       2016-06-22  1359  					fs_info->sectorsize);
376cc685cb3b43 Miao Xie           2013-12-10  1360  
088545f6e44260 Nikolay Borisov    2020-06-03  1361  		ret = btrfs_dirty_pages(BTRFS_I(inode), pages,
088545f6e44260 Nikolay Borisov    2020-06-03  1362  					dirty_pages, pos, copied,
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1363  					&bi->cached_state, bi->metadata_only);
c67d970f0ea8dc Filipe Manana      2019-09-30  1364  
c67d970f0ea8dc Filipe Manana      2019-09-30  1365  		/*
c67d970f0ea8dc Filipe Manana      2019-09-30  1366  		 * If we have not locked the extent range, because the range's
c67d970f0ea8dc Filipe Manana      2019-09-30  1367  		 * start offset is >= i_size, we might still have a non-NULL
c67d970f0ea8dc Filipe Manana      2019-09-30  1368  		 * cached extent state, acquired while marking the extent range
c67d970f0ea8dc Filipe Manana      2019-09-30  1369  		 * as delalloc through btrfs_dirty_pages(). Therefore free any
c67d970f0ea8dc Filipe Manana      2019-09-30  1370  		 * possible cached extent state to avoid a memory leak.
c67d970f0ea8dc Filipe Manana      2019-09-30  1371  		 */
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1372  		if (bi->extents_locked)
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1373  			unlock_extent(&BTRFS_I(inode)->io_tree, bi->lockstart,
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1374  				      bi->lockend, &bi->cached_state);
c67d970f0ea8dc Filipe Manana      2019-09-30  1375  		else
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1376  			free_extent_state(bi->cached_state);
c67d970f0ea8dc Filipe Manana      2019-09-30  1377  
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1378  		btrfs_delalloc_release_extents(BTRFS_I(inode), bi->reserved_bytes);
f1de968376340c Miao Xie           2014-01-09  1379  		if (ret) {
e4f9434749d85a Qu Wenruo          2021-09-27 @1380  			btrfs_drop_pages(fs_info, pages, num_pages, pos, copied);
d0215f3e5ebb58 Josef Bacik        2011-01-25  1381  			break;
f1de968376340c Miao Xie           2014-01-09  1382  		}
39279cc3d2704c Chris Mason        2007-06-12  1383  
7ee9e4405f264e Josef Bacik        2013-06-21  1384  		release_bytes = 0;
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1385  		if (bi->metadata_only)
38d37aa9c32938 Qu Wenruo          2020-06-24  1386  			btrfs_check_nocow_unlock(BTRFS_I(inode));
8257b2dc3c1a10 Miao Xie           2014-03-06  1387  
e4f9434749d85a Qu Wenruo          2021-09-27  1388  		btrfs_drop_pages(fs_info, pages, num_pages, pos, copied);
f1de968376340c Miao Xie           2014-01-09  1389  
d0215f3e5ebb58 Josef Bacik        2011-01-25  1390  		cond_resched();
d0215f3e5ebb58 Josef Bacik        2011-01-25  1391  
914ee295af418e Xin Zhong          2010-12-09  1392  		pos += copied;
914ee295af418e Xin Zhong          2010-12-09  1393  		num_written += copied;
d0215f3e5ebb58 Josef Bacik        2011-01-25  1394  	}
39279cc3d2704c Chris Mason        2007-06-12  1395  
d0215f3e5ebb58 Josef Bacik        2011-01-25  1396  	kfree(pages);
d0215f3e5ebb58 Josef Bacik        2011-01-25  1397  
7ee9e4405f264e Josef Bacik        2013-06-21  1398  	if (release_bytes) {
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1399  		if (bi->metadata_only) {
38d37aa9c32938 Qu Wenruo          2020-06-24  1400  			btrfs_check_nocow_unlock(BTRFS_I(inode));
691fa059673b3b Nikolay Borisov    2017-02-20  1401  			btrfs_delalloc_release_metadata(BTRFS_I(inode),
43b18595d6603c Qu Wenruo          2017-12-12  1402  					release_bytes, true);
8257b2dc3c1a10 Miao Xie           2014-03-06  1403  		} else {
86d52921a2ba51 Nikolay Borisov    2020-06-03  1404  			btrfs_delalloc_release_space(BTRFS_I(inode),
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1405  					bi->data_reserved,
0b246afa62b0cf Jeff Mahoney       2016-06-22  1406  					round_down(pos, fs_info->sectorsize),
43b18595d6603c Qu Wenruo          2017-12-12  1407  					release_bytes, true);
7ee9e4405f264e Josef Bacik        2013-06-21  1408  		}
8257b2dc3c1a10 Miao Xie           2014-03-06  1409  	}
7ee9e4405f264e Josef Bacik        2013-06-21  1410  
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1411  	extent_changeset_free(bi->data_reserved);
2c0968f203d8e3 Goldwyn Rodrigues  2020-10-02  1412  	kfree(bi);
5e8b9ef30392bb Goldwyn Rodrigues  2020-09-24  1413  	if (num_written > 0) {
5e8b9ef30392bb Goldwyn Rodrigues  2020-09-24  1414  		pagecache_isize_extended(inode, old_isize, iocb->ki_pos);
5e8b9ef30392bb Goldwyn Rodrigues  2020-09-24  1415  		iocb->ki_pos += num_written;
5e8b9ef30392bb Goldwyn Rodrigues  2020-09-24  1416  	}
c352370633400d Goldwyn Rodrigues  2020-09-24  1417  out:
c76b47a7f03831 Goldwyn Rodrigues  2023-01-24  1418  	kfree(bi);
e5d4d75bd3241d David Sterba       2022-10-27  1419  	btrfs_inode_unlock(BTRFS_I(inode), ilock_flags);
d0215f3e5ebb58 Josef Bacik        2011-01-25  1420  	return num_written ? num_written : ret;
39279cc3d2704c Chris Mason        2007-06-12  1421  }
d0215f3e5ebb58 Josef Bacik        2011-01-25  1422  

:::::: The code at line 1380 was first introduced by commit
:::::: e4f9434749d85aa99e7e58edce2e003951d8e8e1 btrfs: subpage: add bitmap for PageChecked flag

:::::: TO: Qu Wenruo <wqu@suse.com>
:::::: CC: David Sterba <dsterba@suse.com>

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

                 reply	other threads:[~2024-05-14 16:29 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202405150032.3cTJYo8h-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=rgoldwyn@suse.com \
    /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 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.