tree: https://github.com/kdave/btrfs-devel.git stable-6.0 head: 3405ac932abaa81ce2e1cf0f8cc9b311f7a8287d commit: 3405ac932abaa81ce2e1cf0f8cc9b311f7a8287d [1/1] btrfs: unlock locked extent area if we have contention config: m68k-allyesconfig compiler: m68k-linux-gcc (GCC) 12.1.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/kdave/btrfs-devel/commit/3405ac932abaa81ce2e1cf0f8cc9b311f7a8287d git remote add kdave-btrfs-devel https://github.com/kdave/btrfs-devel.git git fetch --no-tags kdave-btrfs-devel stable-6.0 git checkout 3405ac932abaa81ce2e1cf0f8cc9b311f7a8287d # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash fs/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): fs/btrfs/extent_io.c: In function 'lock_extent_bits': >> fs/btrfs/extent_io.c:1502:57: warning: passing argument 5 of 'clear_extent_bit' makes integer from pointer without a cast [-Wint-conversion] 1502 | EXTENT_LOCKED, cached_state); | ^~~~~~~~~~~~ | | | struct extent_state ** fs/btrfs/extent_io.c:1466:36: note: expected 'int' but argument is of type 'struct extent_state **' 1466 | u32 bits, int wake, int delete, | ~~~~^~~~ fs/btrfs/extent_io.c:1501:25: error: too few arguments to function 'clear_extent_bit' 1501 | clear_extent_bit(tree, start, failed_start - 1, | ^~~~~~~~~~~~~~~~ fs/btrfs/extent_io.c:1465:5: note: declared here 1465 | int clear_extent_bit(struct extent_io_tree *tree, u64 start, u64 end, | ^~~~~~~~~~~~~~~~ fs/btrfs/extent_io.c:1505:23: error: implicit declaration of function '__set_extent_bit'; did you mean 'set_extent_bit'? [-Werror=implicit-function-declaration] 1505 | err = __set_extent_bit(tree, start, end, EXTENT_LOCKED, | ^~~~~~~~~~~~~~~~ | set_extent_bit cc1: some warnings being treated as errors vim +/clear_extent_bit +1502 fs/btrfs/extent_io.c 1485 1486 /* 1487 * either insert or lock state struct between start and end use mask to tell 1488 * us if waiting is desired. 1489 */ 1490 int lock_extent_bits(struct extent_io_tree *tree, u64 start, u64 end, 1491 struct extent_state **cached_state) 1492 { 1493 int err; 1494 u64 failed_start; 1495 1496 err = set_extent_bit(tree, start, end, EXTENT_LOCKED, 1497 EXTENT_LOCKED, &failed_start, 1498 cached_state, GFP_NOFS, NULL); 1499 while (err == -EEXIST) { 1500 if (failed_start != start) 1501 clear_extent_bit(tree, start, failed_start - 1, > 1502 EXTENT_LOCKED, cached_state); 1503 1504 wait_extent_bit(tree, failed_start, end, EXTENT_LOCKED); 1505 err = __set_extent_bit(tree, start, end, EXTENT_LOCKED, 1506 &failed_start, cached_state, NULL, 1507 GFP_NOFS); 1508 } 1509 return err; 1510 } 1511 -- 0-DAY CI Kernel Test Service https://01.org/lkp