Re: [PATCH v4 19/20] ext4: add fast commit replay path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Harshad,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tip/perf/core]
[cannot apply to ext4/dev linus/master v5.5-rc3 next-20191220]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Harshad-Shirwadkar/ext4-update-docs-for-fast-commit-feature/20191225-200339
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git ceb9e77324fa661b1001a0ae66f061b5fcb4e4e6
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-129-g341daf20-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

   fs/ext4/ext4_jbd2.c:612:5: sparse: sparse: symbol '__ext4_fc_track_range' was not declared. Should it be static?
   fs/ext4/ext4_jbd2.c:826:6: sparse: sparse: symbol 'submit_fc_bh' was not declared. Should it be static?
>> fs/ext4/ext4_jbd2.c:1398:13: sparse: sparse: cast to restricted __le16
>> fs/ext4/ext4_jbd2.c:1403:18: sparse: sparse: incorrect type in assignment (different base types)
>> fs/ext4/ext4_jbd2.c:1403:18: sparse:    expected unsigned int [usertype] old_csum
>> fs/ext4/ext4_jbd2.c:1403:18: sparse:    got restricted __le32 [usertype] fc_csum
   fs/ext4/ext4_jbd2.c:1406:25: sparse: sparse: incorrect type in assignment (different base types)
>> fs/ext4/ext4_jbd2.c:1406:25: sparse:    expected restricted __le32 [usertype] fc_csum
>> fs/ext4/ext4_jbd2.c:1406:25: sparse:    got unsigned int [usertype] old_csum
   fs/ext4/ext4_jbd2.c:1608:5: sparse: sparse: symbol 'ext4_fc_perform_hard_commit' was not declared. Should it be static?
   fs/ext4/ext4_jbd2.c:501:12: sparse: sparse: context imbalance in '__ext4_dentry_update' - unexpected unlock
   fs/ext4/ext4_jbd2.c:924:20: sparse: sparse: context imbalance in 'wait_all_inode_data' - unexpected unlock

vim +1398 fs/ext4/ext4_jbd2.c

  1364	
  1365	static int ext4_journal_fc_replay_scan(journal_t *journal,
  1366					       struct buffer_head *bh, int off)
  1367	{
  1368		struct super_block *sb = journal->j_private;
  1369		struct ext4_sb_info *sbi = EXT4_SB(sb);
  1370		struct ext4_fc_replay_state *state;
  1371		struct ext4_fc_commit_hdr *fc_hdr;
  1372		__u32 csum, old_csum;
  1373		__u8 *start, *end;
  1374	
  1375		state = &sbi->s_fc_replay_state;
  1376		fc_hdr = (struct ext4_fc_commit_hdr *)
  1377			  ((__u8 *)bh->b_data + sizeof(journal_header_t));
  1378	
  1379		start = (u8 *)fc_hdr;
  1380		end = (__u8 *)bh->b_data + journal->j_blocksize;
  1381	
  1382		/* Check if we already concluded that this fast commit is not useful */
  1383		if (state->fc_replay_expected_off && state->fc_replay_error)
  1384			goto out_err;
  1385	
  1386		if (le32_to_cpu(fc_hdr->fc_magic) != EXT4_FC_MAGIC) {
  1387			state->fc_replay_error = -ENOENT;
  1388			goto out_err;
  1389		}
  1390	
  1391		if (off != state->fc_replay_expected_off) {
  1392			state->fc_replay_error = -EFSCORRUPTED;
  1393			goto out_err;
  1394		}
  1395	
  1396		state->fc_replay_expected_off++;
  1397	
> 1398		if (le16_to_cpu(fc_hdr->fc_features)) {
  1399			state->fc_replay_error = -EOPNOTSUPP;
  1400			goto out_err;
  1401		}
  1402	
> 1403		old_csum = fc_hdr->fc_csum;
  1404		fc_hdr->fc_csum = 0;
  1405		csum = ext4_chksum(sbi, 0, start, end - start);
> 1406		fc_hdr->fc_csum = old_csum;
  1407	
  1408		if (csum != le32_to_cpu(fc_hdr->fc_csum)) {
  1409			state->fc_replay_error = -EFSBADCRC;
  1410			goto out_err;
  1411		}
  1412	
  1413		trace_ext4_journal_fc_replay_scan(sb, state->fc_replay_error, off);
  1414		return 0;
  1415	
  1416	out_err:
  1417		trace_ext4_journal_fc_replay_scan(sb, state->fc_replay_error, off);
  1418		return state->fc_replay_error;
  1419	}
  1420	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation



[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux