From: kernel test robot <lkp@intel.com>
To: Sergei Shtepa <sergei.shtepa@veeam.com>,
axboe@kernel.dk, viro@zeniv.linux.org.uk, hch@infradead.org,
darrick.wong@oracle.com, linux-xfs@vger.kernel.org,
linux-fsdevel@vger.kernel.org, rjw@rjwysocki.net,
len.brown@intel.com, pavel@ucw.cz, akpm@linux-foundation.org
Cc: kbuild-all@lists.01.org
Subject: Re: [PATCH 2/2] blk-snap - snapshots and change-tracking for block devices
Date: Wed, 21 Oct 2020 18:48:54 +0800 [thread overview]
Message-ID: <202010211811.AnBXYjM4-lkp@intel.com> (raw)
In-Reply-To: <1603271049-20681-3-git-send-email-sergei.shtepa@veeam.com>
[-- Attachment #1: Type: text/plain, Size: 27626 bytes --]
Hi Sergei,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on xfs-linux/for-next]
[also build test WARNING on hnaz-linux-mm/master v5.9]
[cannot apply to block/for-next linus/master next-20201021]
[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/Sergei-Shtepa/block-layer-filter-and-block-device-snapshot-module/20201021-170553
base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.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/0day-ci/linux/commit/dbf569c929b7f5795312a2a87bb61f2cb91a9b44
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sergei-Shtepa/block-layer-filter-and-block-device-snapshot-module/20201021-170553
git checkout dbf569c929b7f5795312a2a87bb61f2cb91a9b44
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/blk_deferred.c:3:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/blk_deferred.c: At top level:
>> drivers/block/blk-snap/blk_deferred.c:140:13: warning: no previous prototype for '_blk_deferred_bio_alloc' [-Wmissing-prototypes]
140 | struct bio *_blk_deferred_bio_alloc(int nr_iovecs)
| ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/blk_deferred.c:198:10: warning: no previous prototype for '_blk_deferred_submit_pages' [-Wmissing-prototypes]
198 | sector_t _blk_deferred_submit_pages(struct block_device *blk_dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/blk_descr_file.c:3:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/blk_descr_file.c: At top level:
>> drivers/block/blk-snap/blk_descr_file.c:39:6: warning: no previous prototype for '_blk_descr_file_cleanup' [-Wmissing-prototypes]
39 | void _blk_descr_file_cleanup(void *descr_array, size_t count)
| ^~~~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/blk_descr_mem.c:3:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/blk_descr_mem.c: At top level:
>> drivers/block/blk-snap/blk_descr_mem.c:23:6: warning: no previous prototype for 'blk_descr_mem_cleanup' [-Wmissing-prototypes]
23 | void blk_descr_mem_cleanup(void *descr_array, size_t count)
| ^~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/blk_redirect.c:3:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/blk_redirect.c: At top level:
>> drivers/block/blk-snap/blk_redirect.c:44:13: warning: no previous prototype for '_blk_dev_redirect_bio_alloc' [-Wmissing-prototypes]
44 | struct bio *_blk_dev_redirect_bio_alloc(int nr_iovecs, void *bi_private)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/blk_redirect.c:58:31: warning: no previous prototype for '_redirect_bio_allocate_list' [-Wmissing-prototypes]
58 | struct blk_redirect_bio_list *_redirect_bio_allocate_list(struct bio *new_bio)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/blk_redirect.c:72:5: warning: no previous prototype for 'bio_endio_list_push' [-Wmissing-prototypes]
72 | int bio_endio_list_push(struct blk_redirect_bio *rq_redir, struct bio *new_bio)
| ^~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/blk_redirect.c:97:6: warning: no previous prototype for 'bio_endio_list_cleanup' [-Wmissing-prototypes]
97 | void bio_endio_list_cleanup(struct blk_redirect_bio_list *curr)
| ^~~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/cbt_map.c:3:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/cbt_map.c: At top level:
>> drivers/block/blk-snap/cbt_map.c:6:5: warning: no previous prototype for 'cbt_map_allocate' [-Wmissing-prototypes]
6 | int cbt_map_allocate(struct cbt_map *cbt_map, unsigned int cbt_sect_in_block_degree,
| ^~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/cbt_map.c:45:6: warning: no previous prototype for 'cbt_map_deallocate' [-Wmissing-prototypes]
45 | void cbt_map_deallocate(struct cbt_map *cbt_map)
| ^~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/cbt_map.c:92:6: warning: no previous prototype for 'cbt_map_destroy_cb' [-Wmissing-prototypes]
92 | void cbt_map_destroy_cb(struct kref *kref)
| ^~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/cbt_map.c:132:5: warning: no previous prototype for '_cbt_map_set' [-Wmissing-prototypes]
132 | int _cbt_map_set(struct cbt_map *cbt_map, sector_t sector_start, sector_t sector_cnt,
| ^~~~~~~~~~~~
--
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/ctrl_fops.c:3:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/ctrl_fops.c: At top level:
>> drivers/block/blk-snap/ctrl_fops.c:140:5: warning: no previous prototype for 'ioctl_compatibility_flags' [-Wmissing-prototypes]
140 | int ioctl_compatibility_flags(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:159:5: warning: no previous prototype for 'ioctl_get_version' [-Wmissing-prototypes]
159 | int ioctl_get_version(unsigned long arg)
| ^~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:174:5: warning: no previous prototype for 'ioctl_tracking_add' [-Wmissing-prototypes]
174 | int ioctl_tracking_add(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:188:5: warning: no previous prototype for 'ioctl_tracking_remove' [-Wmissing-prototypes]
188 | int ioctl_tracking_remove(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:200:5: warning: no previous prototype for 'ioctl_tracking_collect' [-Wmissing-prototypes]
200 | int ioctl_tracking_collect(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:263:5: warning: no previous prototype for 'ioctl_tracking_block_size' [-Wmissing-prototypes]
263 | int ioctl_tracking_block_size(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:276:5: warning: no previous prototype for 'ioctl_tracking_read_cbt_map' [-Wmissing-prototypes]
276 | int ioctl_tracking_read_cbt_map(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:294:5: warning: no previous prototype for 'ioctl_tracking_mark_dirty_blocks' [-Wmissing-prototypes]
294 | int ioctl_tracking_mark_dirty_blocks(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:334:5: warning: no previous prototype for 'ioctl_snapshot_create' [-Wmissing-prototypes]
334 | int ioctl_snapshot_create(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:401:5: warning: no previous prototype for 'ioctl_snapshot_destroy' [-Wmissing-prototypes]
401 | int ioctl_snapshot_destroy(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:426:5: warning: no previous prototype for 'ioctl_snapstore_create' [-Wmissing-prototypes]
426 | int ioctl_snapstore_create(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:468:5: warning: no previous prototype for 'ioctl_snapstore_file' [-Wmissing-prototypes]
468 | int ioctl_snapstore_file(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:504:5: warning: no previous prototype for 'ioctl_snapstore_memory' [-Wmissing-prototypes]
504 | int ioctl_snapstore_memory(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:520:5: warning: no previous prototype for 'ioctl_snapstore_cleanup' [-Wmissing-prototypes]
520 | int ioctl_snapstore_cleanup(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:547:5: warning: no previous prototype for 'ioctl_snapstore_file_multidev' [-Wmissing-prototypes]
547 | int ioctl_snapstore_file_multidev(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:596:5: warning: no previous prototype for 'ioctl_snapshot_errno' [-Wmissing-prototypes]
596 | int ioctl_snapshot_errno(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/ctrl_fops.c:623:5: warning: no previous prototype for 'ioctl_collect_snapimages' [-Wmissing-prototypes]
623 | int ioctl_collect_snapimages(unsigned long arg)
| ^~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/main.c:2:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/main.c: At top level:
>> drivers/block/blk-snap/main.c:17:12: warning: no previous prototype for 'blk_snap_init' [-Wmissing-prototypes]
17 | int __init blk_snap_init(void)
| ^~~~~~~~~~~~~
>> drivers/block/blk-snap/main.c:52:13: warning: no previous prototype for 'blk_snap_exit' [-Wmissing-prototypes]
52 | void __exit blk_snap_exit(void)
| ^~~~~~~~~~~~~
--
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/snapimage.c:3:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/snapimage.c: At top level:
>> drivers/block/blk-snap/snapimage.c:56:5: warning: no previous prototype for '_snapimage_open' [-Wmissing-prototypes]
56 | int _snapimage_open(struct block_device *bdev, fmode_t mode)
| ^~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:97:5: warning: no previous prototype for '_snapimage_getgeo' [-Wmissing-prototypes]
97 | int _snapimage_getgeo(struct block_device *bdev, struct hd_geometry *geo)
| ^~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:143:6: warning: no previous prototype for '_snapimage_close' [-Wmissing-prototypes]
143 | void _snapimage_close(struct gendisk *disk, fmode_t mode)
| ^~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:165:5: warning: no previous prototype for '_snapimage_ioctl' [-Wmissing-prototypes]
165 | int _snapimage_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg)
| ^~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:231:5: warning: no previous prototype for '_snapimage_request_write' [-Wmissing-prototypes]
231 | int _snapimage_request_write(struct snapimage *image, struct blk_redirect_bio *rq_redir)
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:277:6: warning: no previous prototype for '_snapimage_processing' [-Wmissing-prototypes]
277 | void _snapimage_processing(struct snapimage *image)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:299:5: warning: no previous prototype for 'snapimage_processor_waiting' [-Wmissing-prototypes]
299 | int snapimage_processor_waiting(struct snapimage *image)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:316:5: warning: no previous prototype for 'snapimage_processor_thread' [-Wmissing-prototypes]
316 | int snapimage_processor_thread(void *data)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:361:6: warning: no previous prototype for '_snapimage_bio_complete_cb' [-Wmissing-prototypes]
361 | void _snapimage_bio_complete_cb(void *complete_param, struct bio *bio, int err)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:373:5: warning: no previous prototype for '_snapimage_throttling' [-Wmissing-prototypes]
373 | int _snapimage_throttling(struct defer_io *defer_io)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:557:5: warning: no previous prototype for 'snapimage_create' [-Wmissing-prototypes]
557 | int snapimage_create(dev_t original_dev)
| ^~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapimage.c:782:6: warning: no previous prototype for 'snapimage_destroy_for' [-Wmissing-prototypes]
782 | void snapimage_destroy_for(dev_t *p_dev, int count)
| ^~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/mutex.h:15,
from drivers/block/blk-snap/common.h:13,
from drivers/block/blk-snap/snapstore.c:3:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/block/blk-snap/snapstore.c: At top level:
>> drivers/block/blk-snap/snapstore.c:12:6: warning: no previous prototype for '_snapstore_check_halffill' [-Wmissing-prototypes]
12 | bool _snapstore_check_halffill(struct snapstore *snapstore, sector_t *fill_status)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapstore.c:31:6: warning: no previous prototype for '_snapstore_destroy' [-Wmissing-prototypes]
31 | void _snapstore_destroy(struct snapstore *snapstore)
| ^~~~~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapstore.c:251:19: warning: no previous prototype for '_snapstore_find' [-Wmissing-prototypes]
251 | struct snapstore *_snapstore_find(uuid_t *id)
| ^~~~~~~~~~~~~~~
>> drivers/block/blk-snap/snapstore.c:350:5: warning: no previous prototype for 'rangelist_add' [-Wmissing-prototypes]
350 | int rangelist_add(struct list_head *rglist, struct blk_range *rg)
| ^~~~~~~~~~~~~
..
vim +/_blk_deferred_bio_alloc +140 drivers/block/blk-snap/blk_deferred.c
139
> 140 struct bio *_blk_deferred_bio_alloc(int nr_iovecs)
141 {
142 struct bio *new_bio = bio_alloc_bioset(GFP_NOIO, nr_iovecs, &blk_deferred_bioset);
143
144 if (new_bio == NULL)
145 return NULL;
146
147 new_bio->bi_end_io = blk_deferred_bio_endio;
148 new_bio->bi_private = ((void *)new_bio) - sizeof(struct dio_bio_complete);
149
150 return new_bio;
151 }
152
153 static void blk_deferred_complete(struct blk_deferred_request *dio_req, sector_t portion_sect_cnt,
154 int result)
155 {
156 atomic64_add(portion_sect_cnt, &dio_req->sect_processed);
157
158 if (dio_req->sect_len == atomic64_read(&dio_req->sect_processed))
159 complete(&dio_req->complete);
160
161 if (result != SUCCESS) {
162 dio_req->result = result;
163 pr_err("Failed to process defer IO request. errno=%d\n", result);
164 }
165 }
166
167 void blk_deferred_bio_endio(struct bio *bio)
168 {
169 int local_err;
170 struct dio_bio_complete *complete_param = (struct dio_bio_complete *)bio->bi_private;
171
172 if (complete_param == NULL) {
173 //bio already complete
174 } else {
175 if (bio->bi_status != BLK_STS_OK)
176 local_err = -EIO;
177 else
178 local_err = SUCCESS;
179
180 blk_deferred_complete(complete_param->dio_req, complete_param->bio_sect_len,
181 local_err);
182 bio->bi_private = NULL;
183 }
184
185 bio_put(bio);
186 }
187
188 static inline size_t _page_count_calculate(sector_t size_sector)
189 {
190 size_t page_count = size_sector / (PAGE_SIZE / SECTOR_SIZE);
191
192 if (unlikely(size_sector & ((PAGE_SIZE / SECTOR_SIZE) - 1)))
193 page_count += 1;
194
195 return page_count;
196 }
197
> 198 sector_t _blk_deferred_submit_pages(struct block_device *blk_dev,
199 struct blk_deferred_request *dio_req, int direction,
200 sector_t arr_ofs, struct page **page_array, sector_t ofs_sector,
201 sector_t size_sector)
202 {
203 struct bio *bio = NULL;
204 int nr_iovecs;
205 int page_inx = arr_ofs >> (PAGE_SHIFT - SECTOR_SHIFT);
206 sector_t process_sect = 0;
207
208 nr_iovecs = _page_count_calculate(size_sector);
209
210 while (NULL == (bio = _blk_deferred_bio_alloc(nr_iovecs))) {
211 size_sector = (size_sector >> 1) & ~((PAGE_SIZE / SECTOR_SIZE) - 1);
212 if (size_sector == 0)
213 return 0;
214
215 nr_iovecs = _page_count_calculate(size_sector);
216 }
217
218 bio_set_dev(bio, blk_dev);
219
220 if (direction == READ)
221 bio_set_op_attrs(bio, REQ_OP_READ, 0);
222 else
223 bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
224
225 bio->bi_iter.bi_sector = ofs_sector;
226
227 { //add first
228 sector_t unordered = arr_ofs & ((PAGE_SIZE / SECTOR_SIZE) - 1);
229 sector_t bvec_len_sect =
230 min_t(sector_t, ((PAGE_SIZE / SECTOR_SIZE) - unordered), size_sector);
231 struct page *page = page_array[page_inx];
232 unsigned int len = (unsigned int)from_sectors(bvec_len_sect);
233 unsigned int offset = (unsigned int)from_sectors(unordered);
234
235 if (unlikely(page == NULL)) {
236 pr_err("NULL found in page array");
237 bio_put(bio);
238 return 0;
239 }
240 if (unlikely(bio_add_page(bio, page, len, offset) != len)) {
241 bio_put(bio);
242 return 0;
243 }
244 ++page_inx;
245 process_sect += bvec_len_sect;
246 }
247
248 while (process_sect < size_sector) {
249 sector_t bvec_len_sect =
250 min_t(sector_t, (PAGE_SIZE / SECTOR_SIZE), (size_sector - process_sect));
251 struct page *page = page_array[page_inx];
252 unsigned int len = (unsigned int)from_sectors(bvec_len_sect);
253
254
255 if (unlikely(page == NULL)) {
256 pr_err("NULL found in page array");
257 break;
258 }
259 if (unlikely(bio_add_page(bio, page, len, 0) != len))
260 break;
261
262 ++page_inx;
263 process_sect += bvec_len_sect;
264 }
265
266 ((struct dio_bio_complete *)bio->bi_private)->dio_req = dio_req;
267 ((struct dio_bio_complete *)bio->bi_private)->bio_sect_len = process_sect;
268
269 submit_bio_direct(bio);
270
271 return process_sect;
272 }
273
---
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: 57841 bytes --]
next prev parent reply other threads:[~2020-10-21 10:49 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-21 9:04 [PATCH 0/2] block layer filter and block device snapshot module Sergei Shtepa
2020-10-21 9:04 ` [PATCH 1/2] Block layer filter - second version Sergei Shtepa
2020-10-21 9:14 ` Johannes Thumshirn
2020-10-21 10:01 ` Sergei Shtepa
2020-10-21 9:21 ` Damien Le Moal
2020-10-21 10:27 ` Sergei Shtepa
2020-10-21 11:44 ` Matthew Wilcox
2020-10-21 12:55 ` Sergei Shtepa
2020-10-21 13:07 ` Matthew Wilcox
2020-10-21 14:35 ` Sergei Shtepa
2020-10-21 15:09 ` Randy Dunlap
2020-10-24 14:53 ` Greg KH
2020-10-21 9:04 ` [PATCH 2/2] blk-snap - snapshots and change-tracking for block devices Sergei Shtepa
2020-10-21 9:08 ` Pavel Machek
2020-10-21 9:37 ` Sergei Shtepa
2020-10-21 9:23 ` Damien Le Moal
2020-10-21 11:15 ` Sergei Shtepa
2020-10-21 10:48 ` kernel test robot [this message]
2020-10-21 15:11 ` Randy Dunlap
2020-10-21 13:31 ` [PATCH 0/2] block layer filter and block device snapshot module Hannes Reinecke
2020-10-21 14:10 ` Sergei Shtepa
2020-10-22 5:58 ` Hannes Reinecke
2020-10-22 9:44 ` Sergei Shtepa
2020-10-22 10:28 ` Damien Le Moal
2020-10-22 13:52 ` Sergei Shtepa
2020-10-22 15:14 ` Darrick J. Wong
2020-10-22 17:54 ` Mike Snitzer
2020-10-23 9:13 ` hch
2020-10-23 10:31 ` Hannes Reinecke
2020-10-23 11:04 ` Sergei Shtepa
2020-10-23 11:12 ` [dm-devel] " hch
2020-10-22 18:35 ` Mike Snitzer
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=202010211811.AnBXYjM4-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=darrick.wong@oracle.com \
--cc=hch@infradead.org \
--cc=kbuild-all@lists.01.org \
--cc=len.brown@intel.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=rjw@rjwysocki.net \
--cc=sergei.shtepa@veeam.com \
--cc=viro@zeniv.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).