[allisonhenderson-xfs_work:delayed_attrs_v21_extended 62/62] fs/xfs/libxfs/xfs_parent.c:38:1: warning: no previous prototype for 'xfs_init_parent_ptr'
by kernel test robot
tree: https://github.com/allisonhenderson/xfs_work.git delayed_attrs_v21_extended
head: 1a71ced599b41e7ee9f0ea02427b76c30f71f7dd
commit: 1a71ced599b41e7ee9f0ea02427b76c30f71f7dd [62/62] xfs: Add parent pointer ioctl
config: s390-allyesconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/allisonhenderson/xfs_work/commit/1a71ced599b41e7ee9f0e...
git remote add allisonhenderson-xfs_work https://github.com/allisonhenderson/xfs_work.git
git fetch --no-tags allisonhenderson-xfs_work delayed_attrs_v21_extended
git checkout 1a71ced599b41e7ee9f0ea02427b76c30f71f7dd
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> fs/xfs/libxfs/xfs_parent.c:38:1: warning: no previous prototype for 'xfs_init_parent_ptr' [-Wmissing-prototypes]
38 | xfs_init_parent_ptr(struct xfs_parent_ptr *xpp,
| ^~~~~~~~~~~~~~~~~~~
fs/xfs/libxfs/xfs_parent.c:65:1: warning: no previous prototype for 'xfs_init_parent_name_rec' [-Wmissing-prototypes]
65 | xfs_init_parent_name_rec(
| ^~~~~~~~~~~~~~~~~~~~~~~~
fs/xfs/libxfs/xfs_parent.c:80:1: warning: no previous prototype for 'xfs_init_parent_name_irec' [-Wmissing-prototypes]
80 | xfs_init_parent_name_irec(
| ^~~~~~~~~~~~~~~~~~~~~~~~~
--
>> fs/xfs/xfs_parent_utils.c:42:1: warning: no previous prototype for 'xfs_attr_get_parent_pointer' [-Wmissing-prototypes]
42 | xfs_attr_get_parent_pointer(struct xfs_inode *ip,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/xfs_init_parent_ptr +38 fs/xfs/libxfs/xfs_parent.c
35
36 /* Initializes a xfs_parent_ptr from an xfs_parent_name_rec */
37 void
> 38 xfs_init_parent_ptr(struct xfs_parent_ptr *xpp,
39 struct xfs_parent_name_rec *rec)
40 {
41 xpp->xpp_ino = be64_to_cpu(rec->p_ino);
42 xpp->xpp_gen = be32_to_cpu(rec->p_gen);
43 xpp->xpp_diroffset = be32_to_cpu(rec->p_diroffset);
44 }
45
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[allisonhenderson-xfs_work:delayed_attrs_v21_extended 55/62] fs/xfs/libxfs/xfs_parent.c:55:1: warning: no previous prototype for 'xfs_init_parent_name_rec'
by kernel test robot
tree: https://github.com/allisonhenderson/xfs_work.git delayed_attrs_v21_extended
head: 1a71ced599b41e7ee9f0ea02427b76c30f71f7dd
commit: 6f41023d7f86ea86fd240039d34f78b23d7942a5 [55/62] xfs: parent pointer attribute creation
config: s390-allyesconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/allisonhenderson/xfs_work/commit/6f41023d7f86ea86fd240...
git remote add allisonhenderson-xfs_work https://github.com/allisonhenderson/xfs_work.git
git fetch --no-tags allisonhenderson-xfs_work delayed_attrs_v21_extended
git checkout 6f41023d7f86ea86fd240039d34f78b23d7942a5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> fs/xfs/libxfs/xfs_parent.c:55:1: warning: no previous prototype for 'xfs_init_parent_name_rec' [-Wmissing-prototypes]
55 | xfs_init_parent_name_rec(
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> fs/xfs/libxfs/xfs_parent.c:70:1: warning: no previous prototype for 'xfs_init_parent_name_irec' [-Wmissing-prototypes]
70 | xfs_init_parent_name_irec(
| ^~~~~~~~~~~~~~~~~~~~~~~~~
vim +/xfs_init_parent_name_rec +55 fs/xfs/libxfs/xfs_parent.c
35
36 /*
37 * Parent pointer attribute handling.
38 *
39 * Because the attribute value is a filename component, it will never be longer
40 * than 255 bytes. This means the attribute will always be a local format
41 * attribute as it is xfs_attr_leaf_entsize_local_max() for v5 filesystems will
42 * always be larger than this (max is 75% of block size).
43 *
44 * Creating a new parent attribute will always create a new attribute - there
45 * should never, ever be an existing attribute in the tree for a new inode.
46 * ENOSPC behavior is problematic - creating the inode without the parent
47 * pointer is effectively a corruption, so we allow parent attribute creation
48 * to dip into the reserve block pool to avoid unexpected ENOSPC errors from
49 * occurring.
50 */
51
52
53 /* Initializes a xfs_parent_name_rec to be stored as an attribute name */
54 void
> 55 xfs_init_parent_name_rec(
56 struct xfs_parent_name_rec *rec,
57 struct xfs_inode *ip,
58 uint32_t p_diroffset)
59 {
60 xfs_ino_t p_ino = ip->i_ino;
61 uint32_t p_gen = VFS_I(ip)->i_generation;
62
63 rec->p_ino = cpu_to_be64(p_ino);
64 rec->p_gen = cpu_to_be32(p_gen);
65 rec->p_diroffset = cpu_to_be32(p_diroffset);
66 }
67
68 /* Initializes a xfs_parent_name_irec from an xfs_parent_name_rec */
69 void
> 70 xfs_init_parent_name_irec(
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[norov:bitmap-20210716 15/17] fs/btrfs/extent_io.c:3809:2: error: implicit declaration of function 'bitmap_next_set_region'; did you mean 'bitmap_release_region'?
by kernel test robot
tree: https://github.com/norov/linux bitmap-20210716
head: 8ac80f856c70d69f310de6215244b6aaeb22d5b9
commit: a2d6e02d19450a49a55f08c151d1f704723bec1a [15/17] bitmap: unify find_bit operations
config: nios2-randconfig-r031-20210719 (attached as .config)
compiler: nios2-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/norov/linux/commit/a2d6e02d19450a49a55f08c151d1f704723...
git remote add norov https://github.com/norov/linux
git fetch --no-tags norov bitmap-20210716
git checkout a2d6e02d19450a49a55f08c151d1f704723bec1a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=nios2
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
fs/btrfs/extent_io.c: In function 'find_next_dirty_byte':
>> fs/btrfs/extent_io.c:3809:2: error: implicit declaration of function 'bitmap_next_set_region'; did you mean 'bitmap_release_region'? [-Werror=implicit-function-declaration]
3809 | bitmap_next_set_region(&dirty_bitmap, &range_start_bit, &range_end_bit,
| ^~~~~~~~~~~~~~~~~~~~~~
| bitmap_release_region
cc1: some warnings being treated as errors
vim +3809 fs/btrfs/extent_io.c
40f765805f082e Chris Mason 2014-05-21 3766
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3767 /*
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3768 * Find the first byte we need to write.
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3769 *
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3770 * For subpage, one page can contain several sectors, and
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3771 * __extent_writepage_io() will just grab all extent maps in the page
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3772 * range and try to submit all non-inline/non-compressed extents.
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3773 *
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3774 * This is a big problem for subpage, we shouldn't re-submit already written
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3775 * data at all.
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3776 * This function will lookup subpage dirty bit to find which range we really
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3777 * need to submit.
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3778 *
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3779 * Return the next dirty range in [@start, @end).
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3780 * If no dirty range is found, @start will be page_offset(page) + PAGE_SIZE.
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3781 */
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3782 static void find_next_dirty_byte(struct btrfs_fs_info *fs_info,
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3783 struct page *page, u64 *start, u64 *end)
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3784 {
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3785 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3786 u64 orig_start = *start;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3787 /* Declare as unsigned long so we can use bitmap ops */
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3788 unsigned long dirty_bitmap;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3789 unsigned long flags;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3790 int nbits = (orig_start - page_offset(page)) >> fs_info->sectorsize_bits;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3791 int range_start_bit = nbits;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3792 int range_end_bit;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3793
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3794 /*
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3795 * For regular sector size == page size case, since one page only
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3796 * contains one sector, we return the page offset directly.
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3797 */
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3798 if (fs_info->sectorsize == PAGE_SIZE) {
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3799 *start = page_offset(page);
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3800 *end = page_offset(page) + PAGE_SIZE;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3801 return;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3802 }
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3803
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3804 /* We should have the page locked, but just in case */
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3805 spin_lock_irqsave(&subpage->lock, flags);
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3806 dirty_bitmap = subpage->dirty_bitmap;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3807 spin_unlock_irqrestore(&subpage->lock, flags);
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3808
c5ef5c6c733a08 Qu Wenruo 2021-05-31 @3809 bitmap_next_set_region(&dirty_bitmap, &range_start_bit, &range_end_bit,
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3810 BTRFS_SUBPAGE_BITMAP_SIZE);
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3811 *start = page_offset(page) + range_start_bit * fs_info->sectorsize;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3812 *end = page_offset(page) + range_end_bit * fs_info->sectorsize;
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3813 }
c5ef5c6c733a08 Qu Wenruo 2021-05-31 3814
:::::: The code at line 3809 was first introduced by commit
:::::: c5ef5c6c733a087fc3f8b298010d7e6911bff1e3 btrfs: make __extent_writepage_io() only submit dirty range for subpage
:::::: TO: Qu Wenruo <wqu(a)suse.com>
:::::: CC: David Sterba <dsterba(a)suse.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[allisonhenderson-xfs_work:delayed_attrs_v21_extended 54/62] fs/xfs/libxfs/xfs_trans_resv.c:854:1: warning: no previous prototype for 'xfs_calc_namespace_reservations'
by kernel test robot
tree: https://github.com/allisonhenderson/xfs_work.git delayed_attrs_v21_extended
head: 1a71ced599b41e7ee9f0ea02427b76c30f71f7dd
commit: 4801b661f577ce8fa4a27b26493a7b4c5bf327b4 [54/62] xfs: extent transaction reservations for parent attributes
config: s390-allyesconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/allisonhenderson/xfs_work/commit/4801b661f577ce8fa4a27...
git remote add allisonhenderson-xfs_work https://github.com/allisonhenderson/xfs_work.git
git fetch --no-tags allisonhenderson-xfs_work delayed_attrs_v21_extended
git checkout 4801b661f577ce8fa4a27b26493a7b4c5bf327b4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> fs/xfs/libxfs/xfs_trans_resv.c:854:1: warning: no previous prototype for 'xfs_calc_namespace_reservations' [-Wmissing-prototypes]
854 | xfs_calc_namespace_reservations(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/xfs_calc_namespace_reservations +854 fs/xfs/libxfs/xfs_trans_resv.c
834
835 /*
836 * Namespace reservations.
837 *
838 * These get tricky when parent pointers are enabled as we have attribute
839 * modifications occurring from within these transactions. Rather than confuse
840 * each of these reservation calculations with the conditional attribute
841 * reservations, add them here in a clear and concise manner. This assumes that
842 * the attribute reservations have already been calculated.
843 *
844 * Note that we only include the static attribute reservation here; the runtime
845 * reservation will have to be modified by the size of the attributes being
846 * added/removed/modified. See the comments on the attribute reservation
847 * calculations for more details.
848 *
849 * Note for rename: rename will vastly overestimate requirements. This will be
850 * addressed later when modifications are made to ensure parent attribute
851 * modifications can be done atomically with the rename operation.
852 */
853 void
> 854 xfs_calc_namespace_reservations(
855 struct xfs_mount *mp,
856 struct xfs_trans_resv *resp)
857 {
858 ASSERT(resp->tr_attrsetm.tr_logres > 0);
859
860 resp->tr_rename.tr_logres = xfs_calc_rename_reservation(mp);
861 resp->tr_rename.tr_logcount = XFS_RENAME_LOG_COUNT;
862 resp->tr_rename.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
863
864 resp->tr_link.tr_logres = xfs_calc_link_reservation(mp);
865 resp->tr_link.tr_logcount = XFS_LINK_LOG_COUNT;
866 resp->tr_link.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
867
868 resp->tr_remove.tr_logres = xfs_calc_remove_reservation(mp);
869 resp->tr_remove.tr_logcount = XFS_REMOVE_LOG_COUNT;
870 resp->tr_remove.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
871
872 resp->tr_symlink.tr_logres = xfs_calc_symlink_reservation(mp);
873 resp->tr_symlink.tr_logcount = XFS_SYMLINK_LOG_COUNT;
874 resp->tr_symlink.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
875
876 resp->tr_create.tr_logres = xfs_calc_icreate_reservation(mp);
877 resp->tr_create.tr_logcount = XFS_CREATE_LOG_COUNT;
878 resp->tr_create.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
879
880 resp->tr_mkdir.tr_logres = xfs_calc_mkdir_reservation(mp);
881 resp->tr_mkdir.tr_logcount = XFS_MKDIR_LOG_COUNT;
882 resp->tr_mkdir.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
883
884 xfs_calc_parent_ptr_reservations(mp);
885 }
886
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[norov:bitmap-20210716 15/17] fs/btrfs/extent_io.c:3809:2: error: implicit declaration of function 'bitmap_next_set_region'
by kernel test robot
tree: https://github.com/norov/linux bitmap-20210716
head: 8ac80f856c70d69f310de6215244b6aaeb22d5b9
commit: a2d6e02d19450a49a55f08c151d1f704723bec1a [15/17] bitmap: unify find_bit operations
config: powerpc64-buildonly-randconfig-r002-20210719 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 5d5b08761f944d5b9822d582378333cc4b36a0a7)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
# https://github.com/norov/linux/commit/a2d6e02d19450a49a55f08c151d1f704723...
git remote add norov https://github.com/norov/linux
git fetch --no-tags norov bitmap-20210716
git checkout a2d6e02d19450a49a55f08c151d1f704723bec1a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from fs/btrfs/extent_io.c:5:
In file included from include/linux/bio.h:8:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:88:1: note: expanded from here
__do_insw
^
arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw'
#define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/btrfs/extent_io.c:5:
In file included from include/linux/bio.h:8:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:90:1: note: expanded from here
__do_insl
^
arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl'
#define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/btrfs/extent_io.c:5:
In file included from include/linux/bio.h:8:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:92:1: note: expanded from here
__do_outsb
^
arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb'
#define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/btrfs/extent_io.c:5:
In file included from include/linux/bio.h:8:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:94:1: note: expanded from here
__do_outsw
^
arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw'
#define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/btrfs/extent_io.c:5:
In file included from include/linux/bio.h:8:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:96:1: note: expanded from here
__do_outsl
^
arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl'
#define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
>> fs/btrfs/extent_io.c:3809:2: error: implicit declaration of function 'bitmap_next_set_region' [-Werror,-Wimplicit-function-declaration]
bitmap_next_set_region(&dirty_bitmap, &range_start_bit, &range_end_bit,
^
fs/btrfs/extent_io.c:3809:2: note: did you mean 'bitmap_release_region'?
include/linux/bitmap.h:213:6: note: 'bitmap_release_region' declared here
void bitmap_release_region(unsigned long *bitmap, unsigned int pos, int order);
^
6 warnings and 1 error generated.
vim +/bitmap_next_set_region +3809 fs/btrfs/extent_io.c
40f765805f082ed Chris Mason 2014-05-21 3766
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3767 /*
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3768 * Find the first byte we need to write.
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3769 *
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3770 * For subpage, one page can contain several sectors, and
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3771 * __extent_writepage_io() will just grab all extent maps in the page
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3772 * range and try to submit all non-inline/non-compressed extents.
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3773 *
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3774 * This is a big problem for subpage, we shouldn't re-submit already written
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3775 * data at all.
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3776 * This function will lookup subpage dirty bit to find which range we really
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3777 * need to submit.
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3778 *
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3779 * Return the next dirty range in [@start, @end).
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3780 * If no dirty range is found, @start will be page_offset(page) + PAGE_SIZE.
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3781 */
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3782 static void find_next_dirty_byte(struct btrfs_fs_info *fs_info,
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3783 struct page *page, u64 *start, u64 *end)
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3784 {
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3785 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3786 u64 orig_start = *start;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3787 /* Declare as unsigned long so we can use bitmap ops */
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3788 unsigned long dirty_bitmap;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3789 unsigned long flags;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3790 int nbits = (orig_start - page_offset(page)) >> fs_info->sectorsize_bits;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3791 int range_start_bit = nbits;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3792 int range_end_bit;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3793
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3794 /*
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3795 * For regular sector size == page size case, since one page only
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3796 * contains one sector, we return the page offset directly.
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3797 */
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3798 if (fs_info->sectorsize == PAGE_SIZE) {
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3799 *start = page_offset(page);
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3800 *end = page_offset(page) + PAGE_SIZE;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3801 return;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3802 }
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3803
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3804 /* We should have the page locked, but just in case */
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3805 spin_lock_irqsave(&subpage->lock, flags);
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3806 dirty_bitmap = subpage->dirty_bitmap;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3807 spin_unlock_irqrestore(&subpage->lock, flags);
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3808
c5ef5c6c733a087 Qu Wenruo 2021-05-31 @3809 bitmap_next_set_region(&dirty_bitmap, &range_start_bit, &range_end_bit,
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3810 BTRFS_SUBPAGE_BITMAP_SIZE);
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3811 *start = page_offset(page) + range_start_bit * fs_info->sectorsize;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3812 *end = page_offset(page) + range_end_bit * fs_info->sectorsize;
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3813 }
c5ef5c6c733a087 Qu Wenruo 2021-05-31 3814
:::::: The code at line 3809 was first introduced by commit
:::::: c5ef5c6c733a087fc3f8b298010d7e6911bff1e3 btrfs: make __extent_writepage_io() only submit dirty range for subpage
:::::: TO: Qu Wenruo <wqu(a)suse.com>
:::::: CC: David Sterba <dsterba(a)suse.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[zen-kernel-zen-kernel:5.13/futex2 1/19] kernel/futex2.c:470:42: error: expected ')' before 'void'
by kernel test robot
tree: https://github.com/zen-kernel/zen-kernel 5.13/futex2
head: db649ce1f5de12432be5bfedd8388eacc2f85efc
commit: f12c1f14276bce0f66e514b419e68506fb5bad55 [1/19] futex2: Implement wait and wake functions
config: sparc64-randconfig-r034-20210718 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/zen-kernel/zen-kernel/commit/f12c1f14276bce0f66e514b41...
git remote add zen-kernel-zen-kernel https://github.com/zen-kernel/zen-kernel
git fetch --no-tags zen-kernel-zen-kernel 5.13/futex2
git checkout f12c1f14276bce0f66e514b419e68506fb5bad55
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=sparc64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> kernel/futex2.c:470:42: error: expected ')' before 'void'
470 | COMPAT_SYSCALL_DEFINE4(compat_futex_wait, void __user *, uaddr, compat_u64, val,
| ^~~~~
| )
vim +470 kernel/futex2.c
468
469 #ifdef CONFIG_COMPAT
> 470 COMPAT_SYSCALL_DEFINE4(compat_futex_wait, void __user *, uaddr, compat_u64, val,
471 unsigned int, flags,
472 struct __kernel_timespec __user *, timo)
473 {
474 return ksys_futex_wait(uaddr, val, flags, timo);
475 }
476 #endif
477
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[allisonhenderson-xfs_work:delayed_attrs_v21_extended 51/62] fs/xfs/libxfs/xfs_attr.c:657:65: warning: bitwise comparison always evaluates to true
by kernel test robot
tree: https://github.com/allisonhenderson/xfs_work.git delayed_attrs_v21_extended
head: 1a71ced599b41e7ee9f0ea02427b76c30f71f7dd
commit: 41581bf165b262422a2d4b58c25f5d757603b84a [51/62] xfs: add parent pointer support to attribute code
config: s390-allyesconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/allisonhenderson/xfs_work/commit/41581bf165b262422a2d4...
git remote add allisonhenderson-xfs_work https://github.com/allisonhenderson/xfs_work.git
git fetch --no-tags allisonhenderson-xfs_work delayed_attrs_v21_extended
git checkout 41581bf165b262422a2d4b58c25f5d757603b84a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
fs/xfs/libxfs/xfs_attr.c: In function 'xfs_attr_set':
>> fs/xfs/libxfs/xfs_attr.c:657:65: warning: bitwise comparison always evaluates to true [-Wtautological-compare]
657 | rsvd = ((args->attr_filter & XFS_ATTR_ROOT) | XFS_ATTR_PARENT) != 0;
| ^~
vim +657 fs/xfs/libxfs/xfs_attr.c
640
641 /*
642 * Note: If args->value is NULL the attribute will be removed, just like the
643 * Linux ->setattr API.
644 */
645 int
646 xfs_attr_set(
647 struct xfs_da_args *args)
648 {
649 struct xfs_inode *dp = args->dp;
650 struct xfs_mount *mp = dp->i_mount;
651 struct xfs_trans_res tres;
652 bool rsvd;
653 int error, local;
654 int rmt_blks = 0;
655 unsigned int total;
656
> 657 rsvd = ((args->attr_filter & XFS_ATTR_ROOT) | XFS_ATTR_PARENT) != 0;
658
659 if (XFS_FORCED_SHUTDOWN(dp->i_mount))
660 return -EIO;
661
662 error = xfs_qm_dqattach(dp);
663 if (error)
664 return error;
665
666 args->geo = mp->m_attr_geo;
667 args->whichfork = XFS_ATTR_FORK;
668 args->hashval = xfs_da_hashname(args->name, args->namelen);
669
670 /*
671 * We have no control over the attribute names that userspace passes us
672 * to remove, so we have to allow the name lookup prior to attribute
673 * removal to fail as well.
674 */
675 args->op_flags = XFS_DA_OP_OKNOENT;
676
677 if (args->value) {
678 XFS_STATS_INC(mp, xs_attr_set);
679
680 args->op_flags |= XFS_DA_OP_ADDNAME;
681 args->total = xfs_attr_calc_size(args, &local);
682
683 /*
684 * If the inode doesn't have an attribute fork, add one.
685 * (inode must not be locked when we call this routine)
686 */
687 if (XFS_IFORK_Q(dp) == 0) {
688 int sf_size = sizeof(struct xfs_attr_sf_hdr) +
689 xfs_attr_sf_entsize_byname(args->namelen,
690 args->valuelen);
691
692 error = xfs_bmap_add_attrfork(dp, sf_size, rsvd);
693 if (error)
694 return error;
695 }
696
697 tres.tr_logres = M_RES(mp)->tr_attrsetm.tr_logres +
698 M_RES(mp)->tr_attrsetrt.tr_logres *
699 args->total;
700 tres.tr_logcount = XFS_ATTRSET_LOG_COUNT;
701 tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
702 total = args->total;
703
704 if (!local)
705 rmt_blks = xfs_attr3_rmt_blocks(mp, args->valuelen);
706 } else {
707 XFS_STATS_INC(mp, xs_attr_remove);
708
709 tres = M_RES(mp)->tr_attrrm;
710 total = XFS_ATTRRM_SPACE_RES(mp);
711 rmt_blks = xfs_attr3_rmt_blocks(mp, XFS_XATTR_SIZE_MAX);
712 }
713
714 /*
715 * Root fork attributes can use reserved data blocks for this
716 * operation if necessary
717 */
718 error = xfs_trans_alloc_inode(dp, &tres, total, 0, rsvd, &args->trans);
719 if (error)
720 return error;
721
722 if (args->value || xfs_inode_hasattr(dp)) {
723 error = xfs_iext_count_may_overflow(dp, XFS_ATTR_FORK,
724 XFS_IEXT_ATTR_MANIP_CNT(rmt_blks));
725 if (error)
726 goto out_trans_cancel;
727 }
728
729 if (args->value) {
730 error = xfs_has_attr(args);
731 if (error == -EEXIST && (args->attr_flags & XATTR_CREATE))
732 goto out_trans_cancel;
733 if (error == -ENOATTR && (args->attr_flags & XATTR_REPLACE))
734 goto out_trans_cancel;
735 if (error != -ENOATTR && error != -EEXIST)
736 goto out_trans_cancel;
737
738 error = xfs_attr_set_deferred(args);
739 if (error)
740 goto out_trans_cancel;
741
742 /* shortform attribute has already been committed */
743 if (!args->trans)
744 goto out_unlock;
745 } else {
746 error = xfs_has_attr(args);
747 if (error != -EEXIST)
748 goto out_trans_cancel;
749
750 error = xfs_attr_remove_deferred(args);
751 if (error)
752 goto out_trans_cancel;
753 }
754
755 /*
756 * If this is a synchronous mount, make sure that the
757 * transaction goes to disk before returning to the user.
758 */
759 if (mp->m_flags & XFS_MOUNT_WSYNC)
760 xfs_trans_set_sync(args->trans);
761
762 if (!(args->op_flags & XFS_DA_OP_NOTIME))
763 xfs_trans_ichgtime(args->trans, dp, XFS_ICHGTIME_CHG);
764
765 /*
766 * Commit the last in the sequence of transactions.
767 */
768 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE);
769 error = xfs_trans_commit(args->trans);
770 out_unlock:
771 xfs_iunlock(dp, XFS_ILOCK_EXCL);
772 return error;
773
774 out_trans_cancel:
775 if (args->trans)
776 xfs_trans_cancel(args->trans);
777 goto out_unlock;
778 }
779
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[allisonhenderson-xfs_work:delayed_attrs_v21_extended 39/62] fs/xfs/xfs_attr_item.c:292:1: sparse: sparse: symbol 'xfs_trans_attr_finish_update' was not declared. Should it be static?
by kernel test robot
tree: https://github.com/allisonhenderson/xfs_work.git delayed_attrs_v21_extended
head: 1a71ced599b41e7ee9f0ea02427b76c30f71f7dd
commit: ba1114fc490c84643980a816cfc54ae8f5da1dd3 [39/62] xfs: Implement attr logging and replay
config: x86_64-randconfig-s021-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
# https://github.com/allisonhenderson/xfs_work/commit/ba1114fc490c84643980a...
git remote add allisonhenderson-xfs_work https://github.com/allisonhenderson/xfs_work.git
git fetch --no-tags allisonhenderson-xfs_work delayed_attrs_v21_extended
git checkout ba1114fc490c84643980a816cfc54ae8f5da1dd3
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> fs/xfs/xfs_attr_item.c:292:1: sparse: sparse: symbol 'xfs_trans_attr_finish_update' was not declared. Should it be static?
>> fs/xfs/xfs_attr_item.c:496:27: sparse: sparse: symbol 'xfs_trans_get_attrd' was not declared. Should it be static?
>> fs/xfs/xfs_attr_item.c:608:30: sparse: sparse: Using plain integer as NULL pointer
fs/xfs/xfs_attr_item.c: note: in included file:
fs/xfs/xfs_log.h:34:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] oh_len @@ got int len @@
fs/xfs/xfs_log.h:34:21: sparse: expected restricted __be32 [usertype] oh_len
fs/xfs/xfs_log.h:34:21: sparse: got int len
fs/xfs/xfs_log.h:34:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] oh_len @@ got int len @@
fs/xfs/xfs_log.h:34:21: sparse: expected restricted __be32 [usertype] oh_len
fs/xfs/xfs_log.h:34:21: sparse: got int len
fs/xfs/xfs_log.h:34:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] oh_len @@ got int len @@
fs/xfs/xfs_log.h:34:21: sparse: expected restricted __be32 [usertype] oh_len
fs/xfs/xfs_log.h:34:21: sparse: got int len
fs/xfs/xfs_log.h:34:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] oh_len @@ got int len @@
fs/xfs/xfs_log.h:34:21: sparse: expected restricted __be32 [usertype] oh_len
fs/xfs/xfs_log.h:34:21: sparse: got int len
Please review and possibly fold the followup patch.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months