Re: [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
From: kernel test robot
Date: Fri Oct 30 2020 - 21:23:51 EST
Hi Konstantin,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc1 next-20201030]
[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/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201030-230756
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 07e0887302450a62f51dba72df6afb5fabb23d1c
config: h8300-randconfig-s031-20201030 (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-68-g49c98aa3-dirty
# https://github.com/0day-ci/linux/commit/7c34316b6c7f9af2046f8343d3b010c37340ef1d
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201030-230756
git checkout 7c34316b6c7f9af2046f8343d3b010c37340ef1d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=h8300
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
"sparse warnings: (new ones prefixed by >>)"
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
vim +569 fs/ntfs3/frecord.c
cbd4257e6d85149 Konstantin Komarov 2020-10-30 532
cbd4257e6d85149 Konstantin Komarov 2020-10-30 533 /*
cbd4257e6d85149 Konstantin Komarov 2020-10-30 534 * random write access to sparsed or compressed file may result to
cbd4257e6d85149 Konstantin Komarov 2020-10-30 535 * not optimized packed runs.
cbd4257e6d85149 Konstantin Komarov 2020-10-30 536 * Here it is the place to optimize it
cbd4257e6d85149 Konstantin Komarov 2020-10-30 537 */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 538 static int ni_repack(struct ntfs_inode *ni)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 539 {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 540 int err = 0;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 541 struct ntfs_sb_info *sbi = ni->mi.sbi;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 542 struct mft_inode *mi, *mi_p = NULL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 543 struct ATTRIB *attr = NULL, *attr_p;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 544 struct ATTR_LIST_ENTRY *le = NULL, *le_p;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 545 CLST alloc = 0;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 546 u8 cluster_bits = sbi->cluster_bits;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 547 CLST svcn, evcn = 0, svcn_p, evcn_p, next_svcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 548 u32 roff, rs = sbi->record_size;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 549 struct runs_tree run;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 550
cbd4257e6d85149 Konstantin Komarov 2020-10-30 551 run_init(&run);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 552
cbd4257e6d85149 Konstantin Komarov 2020-10-30 553 while ((attr = ni_enum_attr_ex(ni, attr, &le))) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 554 if (!attr->non_res)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 555 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 556
cbd4257e6d85149 Konstantin Komarov 2020-10-30 557 if (ni_load_mi(ni, le, &mi)) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 558 err = -EINVAL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 559 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 560 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 561
cbd4257e6d85149 Konstantin Komarov 2020-10-30 562 svcn = le64_to_cpu(attr->nres.svcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 563 if (svcn != le64_to_cpu(le->vcn)) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 564 err = -EINVAL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 565 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 566 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 567
cbd4257e6d85149 Konstantin Komarov 2020-10-30 568 if (!svcn) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 @569 alloc = le32_to_cpu(attr->nres.alloc_size) >>
cbd4257e6d85149 Konstantin Komarov 2020-10-30 570 cluster_bits;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 571 mi_p = NULL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 572 } else if (svcn != evcn + 1) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 573 err = -EINVAL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 574 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 575 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 576
cbd4257e6d85149 Konstantin Komarov 2020-10-30 577 evcn = le64_to_cpu(attr->nres.evcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 578
cbd4257e6d85149 Konstantin Komarov 2020-10-30 579 if (svcn > evcn + 1) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 580 err = -EINVAL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 581 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 582 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 583
cbd4257e6d85149 Konstantin Komarov 2020-10-30 584 if (!mi_p) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 585 /* do not try if too little free space */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 586 if (le32_to_cpu(mi->mrec->used) + 8 >= rs)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 587 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 588
cbd4257e6d85149 Konstantin Komarov 2020-10-30 589 /* do not try if last attribute segment */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 590 if (evcn + 1 == alloc)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 591 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 592 run_close(&run);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 593 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 594
cbd4257e6d85149 Konstantin Komarov 2020-10-30 595 roff = le16_to_cpu(attr->nres.run_off);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 596 err = run_unpack(&run, sbi, ni->mi.rno, svcn, evcn, svcn,
cbd4257e6d85149 Konstantin Komarov 2020-10-30 597 Add2Ptr(attr, roff),
cbd4257e6d85149 Konstantin Komarov 2020-10-30 598 le32_to_cpu(attr->size) - roff);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 599 if (err < 0)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 600 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 601
cbd4257e6d85149 Konstantin Komarov 2020-10-30 602 if (!mi_p) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 603 mi_p = mi;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 604 attr_p = attr;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 605 svcn_p = svcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 606 evcn_p = evcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 607 le_p = le;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 608 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 609 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 610
cbd4257e6d85149 Konstantin Komarov 2020-10-30 611 /*
cbd4257e6d85149 Konstantin Komarov 2020-10-30 612 * run contains data from two records: mi_p and mi
cbd4257e6d85149 Konstantin Komarov 2020-10-30 613 * try to pack in one
cbd4257e6d85149 Konstantin Komarov 2020-10-30 614 */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 615 err = mi_pack_runs(mi_p, attr_p, &run, evcn + 1 - svcn_p);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 616 if (err)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 617 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 618
cbd4257e6d85149 Konstantin Komarov 2020-10-30 619 next_svcn = le64_to_cpu(attr_p->nres.evcn) + 1;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 620
cbd4257e6d85149 Konstantin Komarov 2020-10-30 621 if (next_svcn >= evcn + 1) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 622 /* we can remove this attribute segment */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 623 al_remove_le(ni, le);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 624 mi_remove_attr(mi, attr);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 625 le = le_p;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 626 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 627 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 628
cbd4257e6d85149 Konstantin Komarov 2020-10-30 629 attr->nres.svcn = le->vcn = cpu_to_le64(next_svcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 630 mi->dirty = true;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 631 ni->attr_list.dirty = true;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 632
cbd4257e6d85149 Konstantin Komarov 2020-10-30 633 if (evcn + 1 == alloc) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 634 err = mi_pack_runs(mi, attr, &run,
cbd4257e6d85149 Konstantin Komarov 2020-10-30 635 evcn + 1 - next_svcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 636 if (err)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 637 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 638 mi_p = NULL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 639 } else {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 640 mi_p = mi;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 641 attr_p = attr;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 642 svcn_p = next_svcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 643 evcn_p = evcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 644 le_p = le;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 645 run_truncate_head(&run, next_svcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 646 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 647 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 648
cbd4257e6d85149 Konstantin Komarov 2020-10-30 649 if (err) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 650 ntfs_inode_warn(&ni->vfs_inode, "there is a problem");
cbd4257e6d85149 Konstantin Komarov 2020-10-30 651 ntfs_set_state(sbi, NTFS_DIRTY_ERROR);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 652
cbd4257e6d85149 Konstantin Komarov 2020-10-30 653 /* Pack loaded but not packed runs */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 654 if (mi_p)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 655 mi_pack_runs(mi_p, attr_p, &run, evcn_p + 1 - svcn_p);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 656 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 657
cbd4257e6d85149 Konstantin Komarov 2020-10-30 658 run_close(&run);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 659 return err;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 660 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 661
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip