From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
Date: Sat, 31 Oct 2020 09:23:27 +0800 [thread overview]
Message-ID: <202010310907.5Rxaxtib-lkp@intel.com> (raw)
In-Reply-To: <20201030150239.3957156-10-almaz.alexandrovich@paragon-software.com>
[-- Attachment #1: Type: text/plain, Size: 12252 bytes --]
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@intel.com>
"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(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 17639 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
linux-fsdevel@vger.kernel.org
Cc: kbuild-all@lists.01.org, viro@zeniv.linux.org.uk,
linux-kernel@vger.kernel.org, pali@kernel.org, dsterba@suse.cz,
aaptel@suse.com, willy@infradead.org, rdunlap@infradead.org,
joe@perches.com, mark@harmstone.com
Subject: Re: [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
Date: Sat, 31 Oct 2020 09:23:27 +0800 [thread overview]
Message-ID: <202010310907.5Rxaxtib-lkp@intel.com> (raw)
In-Reply-To: <20201030150239.3957156-10-almaz.alexandrovich@paragon-software.com>
[-- Attachment #1: Type: text/plain, Size: 12070 bytes --]
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@intel.com>
"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@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 17639 bytes --]
next prev parent reply other threads:[~2020-10-31 1:23 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-30 15:02 [PATCH v11 00/10] NTFS read-write driver GPL implementation by Paragon Software Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 01/10] fs/ntfs3: Add headers and misc files Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 02/10] fs/ntfs3: Add initialization of super block Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 03/10] fs/ntfs3: Add bitmap Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 04/10] fs/ntfs3: Add file operations and implementation Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 05/10] fs/ntfs3: Add attrib operations Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 06/10] fs/ntfs3: Add compression Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 07/10] fs/ntfs3: Add NTFS journal Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 08/10] fs/ntfs3: Add Kconfig, Makefile and doc Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile Konstantin Komarov
2020-10-31 1:23 ` kernel test robot [this message]
2020-10-31 1:23 ` kernel test robot
2020-11-02 8:36 ` Dan Carpenter
2020-11-02 8:36 ` [kbuild] " Dan Carpenter
2020-11-02 8:36 ` Dan Carpenter
2020-11-03 3:06 ` kernel test robot
2020-11-03 3:06 ` kernel test robot
2020-10-30 15:02 ` [PATCH v11 10/10] fs/ntfs3: Add MAINTAINERS Konstantin Komarov
2020-10-30 15:24 ` [PATCH v11 00/10] NTFS read-write driver GPL implementation by Paragon Software Pali Rohár
2020-10-30 15:51 ` Konstantin Komarov
2020-10-30 16:24 ` Pali Rohár
2020-10-30 16:41 ` Pali Rohár
2020-10-31 8:51 ` Christoph Hellwig
2020-10-31 2:42 ` Eric Biggers
2020-10-31 2:48 ` Eric Biggers
-- strict thread matches above, loose matches on Subject: below --
2020-11-02 8:00 [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile kernel test robot
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=202010310907.5Rxaxtib-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.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 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.