CC: kbuild-all(a)lists.01.org BCC: lkp(a)intel.com CC: "Darrick J. Wong" CC: linux-kernel(a)vger.kernel.org TO: "Darrick J. Wong" tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git vectorized-scrub head: 1fcd9cea011a657d62ee332d161966c1ec92ffd5 commit: 41dbe024adc45afc35713faabd5a55a682ba1b00 [218/401] xfs: repair extended attributes :::::: branch date: 19 hours ago :::::: commit date: 19 hours ago config: microblaze-randconfig-m031-20220601 (https://download.01.org/0day-ci/archive/20220603/202206030008.hkf1GREv-lkp(a)intel.com/config) compiler: microblaze-linux-gcc (GCC) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: fs/xfs/scrub/attr_repair.c:788 xrep_xattr_recover() error: uninitialized symbol 'need_flush'. Old smatch warnings: arch/microblaze/include/asm/thread_info.h:85 current_thread_info() error: uninitialized symbol 'sp'. vim +/need_flush +788 fs/xfs/scrub/attr_repair.c 41dbe024adc45a Darrick J. Wong 2022-01-06 734 41dbe024adc45a Darrick J. Wong 2022-01-06 735 /* Extract as many attribute keys and values as we can. */ 41dbe024adc45a Darrick J. Wong 2022-01-06 736 STATIC int 41dbe024adc45a Darrick J. Wong 2022-01-06 737 xrep_xattr_recover( 41dbe024adc45a Darrick J. Wong 2022-01-06 738 struct xrep_xattr *rx) 41dbe024adc45a Darrick J. Wong 2022-01-06 739 { 41dbe024adc45a Darrick J. Wong 2022-01-06 740 struct xfs_bmbt_irec got; 41dbe024adc45a Darrick J. Wong 2022-01-06 741 struct xfs_scrub *sc = rx->sc; 41dbe024adc45a Darrick J. Wong 2022-01-06 742 struct xfs_da_geometry *geo = sc->mp->m_attr_geo; 41dbe024adc45a Darrick J. Wong 2022-01-06 743 xfs_fileoff_t offset; 41dbe024adc45a Darrick J. Wong 2022-01-06 744 xfs_extlen_t len; 41dbe024adc45a Darrick J. Wong 2022-01-06 745 xfs_dablk_t dabno; 41dbe024adc45a Darrick J. Wong 2022-01-06 746 int nmap; 41dbe024adc45a Darrick J. Wong 2022-01-06 747 int error; 41dbe024adc45a Darrick J. Wong 2022-01-06 748 41dbe024adc45a Darrick J. Wong 2022-01-06 749 /* 41dbe024adc45a Darrick J. Wong 2022-01-06 750 * Iterate each xattr leaf block in the attr fork to scan them for any 41dbe024adc45a Darrick J. Wong 2022-01-06 751 * attributes that we might salvage. 41dbe024adc45a Darrick J. Wong 2022-01-06 752 */ 41dbe024adc45a Darrick J. Wong 2022-01-06 753 for (offset = 0; 41dbe024adc45a Darrick J. Wong 2022-01-06 754 offset < XFS_MAX_FILEOFF; 41dbe024adc45a Darrick J. Wong 2022-01-06 755 offset = got.br_startoff + got.br_blockcount) { 41dbe024adc45a Darrick J. Wong 2022-01-06 756 nmap = 1; 41dbe024adc45a Darrick J. Wong 2022-01-06 757 error = xfs_bmapi_read(sc->ip, offset, XFS_MAX_FILEOFF - offset, 41dbe024adc45a Darrick J. Wong 2022-01-06 758 &got, &nmap, XFS_BMAPI_ATTRFORK); 41dbe024adc45a Darrick J. Wong 2022-01-06 759 if (error) 41dbe024adc45a Darrick J. Wong 2022-01-06 760 return error; 41dbe024adc45a Darrick J. Wong 2022-01-06 761 if (nmap != 1) 41dbe024adc45a Darrick J. Wong 2022-01-06 762 return -EFSCORRUPTED; 41dbe024adc45a Darrick J. Wong 2022-01-06 763 if (!xfs_bmap_is_written_extent(&got)) 41dbe024adc45a Darrick J. Wong 2022-01-06 764 continue; 41dbe024adc45a Darrick J. Wong 2022-01-06 765 41dbe024adc45a Darrick J. Wong 2022-01-06 766 for (dabno = round_up(got.br_startoff, geo->fsbcount); 41dbe024adc45a Darrick J. Wong 2022-01-06 767 dabno < got.br_startoff + got.br_blockcount; 41dbe024adc45a Darrick J. Wong 2022-01-06 768 dabno += len) { 41dbe024adc45a Darrick J. Wong 2022-01-06 769 xfs_fileoff_t curr_offset = dabno - got.br_startoff; 41dbe024adc45a Darrick J. Wong 2022-01-06 770 xfs_extlen_t maxlen; 41dbe024adc45a Darrick J. Wong 2022-01-06 771 bool need_flush; 41dbe024adc45a Darrick J. Wong 2022-01-06 772 41dbe024adc45a Darrick J. Wong 2022-01-06 773 if (xchk_should_terminate(rx->sc, &error)) 41dbe024adc45a Darrick J. Wong 2022-01-06 774 return error; 41dbe024adc45a Darrick J. Wong 2022-01-06 775 41dbe024adc45a Darrick J. Wong 2022-01-06 776 maxlen = min_t(xfs_filblks_t, INT_MAX, 41dbe024adc45a Darrick J. Wong 2022-01-06 777 got.br_blockcount - curr_offset); 41dbe024adc45a Darrick J. Wong 2022-01-06 778 error = xrep_xattr_recover_block(rx, dabno, 41dbe024adc45a Darrick J. Wong 2022-01-06 779 curr_offset + got.br_startblock, 41dbe024adc45a Darrick J. Wong 2022-01-06 780 maxlen, &len); 41dbe024adc45a Darrick J. Wong 2022-01-06 781 if (error) 41dbe024adc45a Darrick J. Wong 2022-01-06 782 return error; 41dbe024adc45a Darrick J. Wong 2022-01-06 783 41dbe024adc45a Darrick J. Wong 2022-01-06 784 error = xrep_xattr_need_flush(rx, &need_flush); 41dbe024adc45a Darrick J. Wong 2022-01-06 785 if (error) 41dbe024adc45a Darrick J. Wong 2022-01-06 786 return error; 41dbe024adc45a Darrick J. Wong 2022-01-06 787 41dbe024adc45a Darrick J. Wong 2022-01-06 @788 if (need_flush) { 41dbe024adc45a Darrick J. Wong 2022-01-06 789 error = xrep_xattr_flush_salvaged(rx); 41dbe024adc45a Darrick J. Wong 2022-01-06 790 if (error) 41dbe024adc45a Darrick J. Wong 2022-01-06 791 return error; 41dbe024adc45a Darrick J. Wong 2022-01-06 792 } 41dbe024adc45a Darrick J. Wong 2022-01-06 793 } 41dbe024adc45a Darrick J. Wong 2022-01-06 794 } 41dbe024adc45a Darrick J. Wong 2022-01-06 795 41dbe024adc45a Darrick J. Wong 2022-01-06 796 return 0; 41dbe024adc45a Darrick J. Wong 2022-01-06 797 } 41dbe024adc45a Darrick J. Wong 2022-01-06 798 -- 0-DAY CI Kernel Test Service https://01.org/lkp