CC: [email protected]
BCC: [email protected]
In-Reply-To: 
<c9b166e536844ca1dd42adb8ea1e3520fc53618a.1647161284.git....@suse.com>
References: 
<c9b166e536844ca1dd42adb8ea1e3520fc53618a.1647161284.git....@suse.com>
TO: Qu Wenruo <[email protected]>

Hi Qu,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on kdave/for-next]
[also build test WARNING on v5.17-rc7 next-20220310]
[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]

url:    
https://github.com/0day-ci/linux/commits/Qu-Wenruo/btrfs-scrub-big-renaming-to-address-the-page-and-sector-difference/20220313-184251
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
:::::: branch date: 4 hours ago
:::::: commit date: 4 hours ago
config: m68k-randconfig-m031-20220313 
(https://download.01.org/0day-ci/archive/20220313/[email protected]/config)
compiler: m68k-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
fs/btrfs/scrub.c:1258 scrub_setup_recheck_block() warn: should 
'original_sblock->sector_count << fs_info->sectorsize_bits' be a 64 bit type?

vim +1258 fs/btrfs/scrub.c

af8e2d1df9848b Miao Xie          2014-10-23  1252  
be50a8ddaae1d0 Zhao Lei          2015-01-20  1253  static int 
scrub_setup_recheck_block(struct scrub_block *original_sblock,
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1254                               
     struct scrub_block *sblocks_for_recheck)
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1255  {
be50a8ddaae1d0 Zhao Lei          2015-01-20  1256       struct scrub_ctx *sctx 
= original_sblock->sctx;
fb456252d3d9c0 Jeff Mahoney      2016-06-22  1257       struct btrfs_fs_info 
*fs_info = sctx->fs_info;
9053bf58b14388 Qu Wenruo         2022-03-13 @1258       u64 length = 
original_sblock->sector_count << fs_info->sectorsize_bits;
9053bf58b14388 Qu Wenruo         2022-03-13  1259       u64 logical = 
original_sblock->sectors[0]->logical;
9053bf58b14388 Qu Wenruo         2022-03-13  1260       u64 generation = 
original_sblock->sectors[0]->generation;
9053bf58b14388 Qu Wenruo         2022-03-13  1261       u64 flags = 
original_sblock->sectors[0]->flags;
9053bf58b14388 Qu Wenruo         2022-03-13  1262       u64 have_csum = 
original_sblock->sectors[0]->have_csum;
af8e2d1df9848b Miao Xie          2014-10-23  1263       struct scrub_recover 
*recover;
4c664611791239 Qu Wenruo         2021-09-15  1264       struct btrfs_io_context 
*bioc;
af8e2d1df9848b Miao Xie          2014-10-23  1265       u64 sublen;
af8e2d1df9848b Miao Xie          2014-10-23  1266       u64 mapped_length;
af8e2d1df9848b Miao Xie          2014-10-23  1267       u64 stripe_offset;
af8e2d1df9848b Miao Xie          2014-10-23  1268       int stripe_index;
9053bf58b14388 Qu Wenruo         2022-03-13  1269       int sector_index = 0;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1270       int mirror_index;
af8e2d1df9848b Miao Xie          2014-10-23  1271       int nmirrors;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1272       int ret;
a2de733c78fa7a Arne Jansen       2011-03-08  1273  
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1274       /*
570193454a5841 Zhao Lei          2015-01-20  1275        * note: the two 
members refs and outstanding_pages
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1276        * are not used (and 
not set) in the blocks that are used for
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1277        * the recheck procedure
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1278        */
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1279  
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1280       while (length > 0) {
8df507cbb59527 Qu Wenruo         2021-04-22  1281               sublen = 
min_t(u64, length, fs_info->sectorsize);
af8e2d1df9848b Miao Xie          2014-10-23  1282               mapped_length = 
sublen;
4c664611791239 Qu Wenruo         2021-09-15  1283               bioc = NULL;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1284  
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1285               /*
8df507cbb59527 Qu Wenruo         2021-04-22  1286                * With a 
length of sectorsize, each returned stripe represents
8df507cbb59527 Qu Wenruo         2021-04-22  1287                * one mirror
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1288                */
e501bfe323356e Qu Wenruo         2017-03-29  1289               
btrfs_bio_counter_inc_blocked(fs_info);
cf8cddd38bab31 Christoph Hellwig 2016-10-27  1290               ret = 
btrfs_map_sblock(fs_info, BTRFS_MAP_GET_READ_MIRRORS,
4c664611791239 Qu Wenruo         2021-09-15  1291                               
       logical, &mapped_length, &bioc);
4c664611791239 Qu Wenruo         2021-09-15  1292               if (ret || 
!bioc || mapped_length < sublen) {
4c664611791239 Qu Wenruo         2021-09-15  1293                       
btrfs_put_bioc(bioc);
e501bfe323356e Qu Wenruo         2017-03-29  1294                       
btrfs_bio_counter_dec(fs_info);
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1295                       return 
-EIO;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1296               }
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1297  
af8e2d1df9848b Miao Xie          2014-10-23  1298               recover = 
kzalloc(sizeof(struct scrub_recover), GFP_NOFS);
af8e2d1df9848b Miao Xie          2014-10-23  1299               if (!recover) {
4c664611791239 Qu Wenruo         2021-09-15  1300                       
btrfs_put_bioc(bioc);
e501bfe323356e Qu Wenruo         2017-03-29  1301                       
btrfs_bio_counter_dec(fs_info);
af8e2d1df9848b Miao Xie          2014-10-23  1302                       return 
-ENOMEM;
af8e2d1df9848b Miao Xie          2014-10-23  1303               }
af8e2d1df9848b Miao Xie          2014-10-23  1304  
6f615018b35fb5 Elena Reshetova   2017-03-03  1305               
refcount_set(&recover->refs, 1);
4c664611791239 Qu Wenruo         2021-09-15  1306               recover->bioc = 
bioc;
af8e2d1df9848b Miao Xie          2014-10-23  1307               
recover->map_length = mapped_length;
af8e2d1df9848b Miao Xie          2014-10-23  1308  
9053bf58b14388 Qu Wenruo         2022-03-13  1309               
ASSERT(sector_index < SCRUB_MAX_SECTORS_PER_BLOCK);
af8e2d1df9848b Miao Xie          2014-10-23  1310  
4c664611791239 Qu Wenruo         2021-09-15  1311               nmirrors = 
min(scrub_nr_raid_mirrors(bioc), BTRFS_MAX_MIRRORS);
10f11900167a83 Zhao Lei          2015-01-20  1312  
af8e2d1df9848b Miao Xie          2014-10-23  1313               for 
(mirror_index = 0; mirror_index < nmirrors;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1314                    
mirror_index++) {
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1315                       struct 
scrub_block *sblock;
261d2dcb24302b Qu Wenruo         2020-11-03  1316                       struct 
scrub_page *spage;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1317  
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1318                       sblock 
= sblocks_for_recheck + mirror_index;
7a9e9987681198 Stefan Behrens    2012-11-02  1319                       
sblock->sctx = sctx;
4734b7ed79e123 Zhao Lei          2015-08-19  1320  
261d2dcb24302b Qu Wenruo         2020-11-03  1321                       spage = 
kzalloc(sizeof(*spage), GFP_NOFS);
261d2dcb24302b Qu Wenruo         2020-11-03  1322                       if 
(!spage) {
7a9e9987681198 Stefan Behrens    2012-11-02  1323  leave_nomem:
d9d181c1ba7aa0 Stefan Behrens    2012-11-02  1324                               
spin_lock(&sctx->stat_lock);
d9d181c1ba7aa0 Stefan Behrens    2012-11-02  1325                               
sctx->stat.malloc_errors++;
d9d181c1ba7aa0 Stefan Behrens    2012-11-02  1326                               
spin_unlock(&sctx->stat_lock);
e501bfe323356e Qu Wenruo         2017-03-29  1327                               
scrub_put_recover(fs_info, recover);
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1328                               
return -ENOMEM;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1329                       }
261d2dcb24302b Qu Wenruo         2020-11-03  1330                       
scrub_page_get(spage);
9053bf58b14388 Qu Wenruo         2022-03-13  1331                       
sblock->sectors[sector_index] = spage;
261d2dcb24302b Qu Wenruo         2020-11-03  1332                       
spage->sblock = sblock;
261d2dcb24302b Qu Wenruo         2020-11-03  1333                       
spage->flags = flags;
261d2dcb24302b Qu Wenruo         2020-11-03  1334                       
spage->generation = generation;
261d2dcb24302b Qu Wenruo         2020-11-03  1335                       
spage->logical = logical;
261d2dcb24302b Qu Wenruo         2020-11-03  1336                       
spage->have_csum = have_csum;
4734b7ed79e123 Zhao Lei          2015-08-19  1337                       if 
(have_csum)
261d2dcb24302b Qu Wenruo         2020-11-03  1338                               
memcpy(spage->csum,
9053bf58b14388 Qu Wenruo         2022-03-13  1339                               
       original_sblock->sectors[0]->csum,
2ae0c2d80d25da David Sterba      2020-06-30  1340                               
       sctx->fs_info->csum_size);
af8e2d1df9848b Miao Xie          2014-10-23  1341  
10f11900167a83 Zhao Lei          2015-01-20  1342                       
scrub_stripe_index_and_offset(logical,
4c664611791239 Qu Wenruo         2021-09-15  1343                               
                      bioc->map_type,
4c664611791239 Qu Wenruo         2021-09-15  1344                               
                      bioc->raid_map,
af8e2d1df9848b Miao Xie          2014-10-23  1345                               
                      mapped_length,
4c664611791239 Qu Wenruo         2021-09-15  1346                               
                      bioc->num_stripes -
4c664611791239 Qu Wenruo         2021-09-15  1347                               
                      bioc->num_tgtdevs,
af8e2d1df9848b Miao Xie          2014-10-23  1348                               
                      mirror_index,
af8e2d1df9848b Miao Xie          2014-10-23  1349                               
                      &stripe_index,
af8e2d1df9848b Miao Xie          2014-10-23  1350                               
                      &stripe_offset);
4c664611791239 Qu Wenruo         2021-09-15  1351                       
spage->physical = bioc->stripes[stripe_index].physical +
af8e2d1df9848b Miao Xie          2014-10-23  1352                               
         stripe_offset;
4c664611791239 Qu Wenruo         2021-09-15  1353                       
spage->dev = bioc->stripes[stripe_index].dev;
af8e2d1df9848b Miao Xie          2014-10-23  1354  
9053bf58b14388 Qu Wenruo         2022-03-13  1355                       
BUG_ON(sector_index >= original_sblock->sector_count);
261d2dcb24302b Qu Wenruo         2020-11-03  1356                       
spage->physical_for_dev_replace =
9053bf58b14388 Qu Wenruo         2022-03-13  1357                               
original_sblock->sectors[sector_index]->
ff023aac31198e Stefan Behrens    2012-11-06  1358                               
physical_for_dev_replace;
7a9e9987681198 Stefan Behrens    2012-11-02  1359                       /* for 
missing devices, dev->bdev is NULL */
261d2dcb24302b Qu Wenruo         2020-11-03  1360                       
spage->mirror_num = mirror_index + 1;
9053bf58b14388 Qu Wenruo         2022-03-13  1361                       
sblock->sector_count++;
261d2dcb24302b Qu Wenruo         2020-11-03  1362                       
spage->page = alloc_page(GFP_NOFS);
261d2dcb24302b Qu Wenruo         2020-11-03  1363                       if 
(!spage->page)
7a9e9987681198 Stefan Behrens    2012-11-02  1364                               
goto leave_nomem;
af8e2d1df9848b Miao Xie          2014-10-23  1365  
af8e2d1df9848b Miao Xie          2014-10-23  1366                       
scrub_get_recover(recover);
261d2dcb24302b Qu Wenruo         2020-11-03  1367                       
spage->recover = recover;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1368               }
e501bfe323356e Qu Wenruo         2017-03-29  1369               
scrub_put_recover(fs_info, recover);
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1370               length -= 
sublen;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1371               logical += 
sublen;
9053bf58b14388 Qu Wenruo         2022-03-13  1372               sector_index++;
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1373       }
a2de733c78fa7a Arne Jansen       2011-03-08  1374  
b5d67f64f9bc65 Stefan Behrens    2012-03-27  1375       return 0;
96e369208e65a7 Ilya Dryomov      2011-04-09  1376  }
96e369208e65a7 Ilya Dryomov      2011-04-09  1377  

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to