tree:   
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git 
dm-vdo
head:   5ef3f52781ac8c3585d19f7ef2ecf9da8ea1b786
commit: f08158dff46c16aac8b2ff6df57fc225fdefe4f9 [59/73] dm vdo: use a proper 
Makefile for dm-vdo
config: riscv-randconfig-r131-20240203 
(https://download.01.org/0day-ci/archive/20240204/[email protected]/config)
compiler: riscv64-linux-gcc (GCC) 13.2.0
reproduce: 
(https://download.01.org/0day-ci/archive/20240204/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

sparse warnings: (new ones prefixed by >>)
>> drivers/md/dm-vdo/dedupe.c:1211:59: sparse: sparse: incorrect type in 
>> argument 4 (different base types) @@     expected unsigned int bi_opf @@     
>> got restricted blk_opf_t @@
   drivers/md/dm-vdo/dedupe.c:1211:59: sparse:     expected unsigned int bi_opf
   drivers/md/dm-vdo/dedupe.c:1211:59: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/dedupe.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
   drivers/md/dm-vdo/dedupe.c: note: in included file (through 
drivers/md/dm-vdo/dedupe.h):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   drivers/md/dm-vdo/dedupe.c:2095:13: sparse: sparse: context imbalance in 
'close_index' - unexpected unlock
   drivers/md/dm-vdo/dedupe.c:2116:13: sparse: sparse: context imbalance in 
'open_index' - unexpected unlock
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
--
>> drivers/md/dm-vdo/block-map.c:70:3: sparse: sparse: symbol 'block_map_tree' 
>> was not declared. Should it be static?
>> drivers/md/dm-vdo/block-map.c:789:55: sparse: sparse: incorrect type in 
>> argument 5 (different base types) @@     expected unsigned int operation @@  
>>    got restricted blk_opf_t @@
   drivers/md/dm-vdo/block-map.c:789:55: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/block-map.c:789:55: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/block-map.c:1128:79: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/block-map.c:1128:79: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/block-map.c:1128:79: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/block-map.c:1062:65: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/block-map.c:1062:65: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/block-map.c:1062:65: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/block-map.c:1696:46: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/block-map.c:1696:46: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/block-map.c:1696:46: sparse:     got restricted blk_opf_t
>> drivers/md/dm-vdo/block-map.c:1626:47: sparse: sparse: incorrect type in 
>> initializer (different base types) @@     expected unsigned int operation @@ 
>>     got restricted blk_opf_t @@
   drivers/md/dm-vdo/block-map.c:1626:47: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/block-map.c:1626:47: sparse:     got restricted blk_opf_t
>> drivers/md/dm-vdo/block-map.c:1635:27: sparse: sparse: invalid assignment: |=
   drivers/md/dm-vdo/block-map.c:1635:27: sparse:    left side has type 
unsigned int
   drivers/md/dm-vdo/block-map.c:1635:27: sparse:    right side has type 
restricted blk_opf_t
   drivers/md/dm-vdo/block-map.c:1886:62: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/block-map.c:1886:62: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/block-map.c:1886:62: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/block-map.c:2621:61: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/block-map.c:2621:61: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/block-map.c:2621:61: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/block-map.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
   drivers/md/dm-vdo/block-map.c: note: in included file (through 
drivers/md/dm-vdo/block-map.h):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   drivers/md/dm-vdo/block-map.c: note: in included file:
>> drivers/md/dm-vdo/io-submitter.h:44:44: sparse: sparse: incorrect type in 
>> argument 5 (different base types) @@     expected unsigned int operation @@  
>>    got restricted blk_opf_t @@
   drivers/md/dm-vdo/io-submitter.h:44:44: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/io-submitter.h:44:44: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/block-map.c: note: in included file (through 
drivers/md/dm-vdo/block-map.h):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
--
>> drivers/md/dm-vdo/data-vio.c:72:73: sparse: sparse: incorrect type in 
>> initializer (different base types) @@     expected unsigned int static 
>> [toplevel] PASSTHROUGH_FLAGS @@     got restricted blk_opf_t @@
   drivers/md/dm-vdo/data-vio.c:72:73: sparse:     expected unsigned int static 
[toplevel] PASSTHROUGH_FLAGS
   drivers/md/dm-vdo/data-vio.c:72:73: sparse:     got restricted blk_opf_t
>> drivers/md/dm-vdo/data-vio.c:1571:52: sparse: sparse: incorrect type in 
>> argument 4 (different base types) @@     expected unsigned int bi_opf @@     
>> got restricted blk_opf_t @@
   drivers/md/dm-vdo/data-vio.c:1571:52: sparse:     expected unsigned int 
bi_opf
   drivers/md/dm-vdo/data-vio.c:1571:52: sparse:     got restricted blk_opf_t
>> drivers/md/dm-vdo/data-vio.c:1573:47: sparse: sparse: restricted blk_opf_t 
>> degrades to integer
   drivers/md/dm-vdo/data-vio.c:1573:79: sparse: sparse: restricted blk_opf_t 
degrades to integer
>> drivers/md/dm-vdo/data-vio.c:1580:64: sparse: sparse: incorrect type in 
>> argument 3 (different base types) @@     expected restricted blk_opf_t 
>> [usertype] opf @@     got int opf @@
   drivers/md/dm-vdo/data-vio.c:1580:64: sparse:     expected restricted 
blk_opf_t [usertype] opf
   drivers/md/dm-vdo/data-vio.c:1580:64: sparse:     got int opf
   drivers/md/dm-vdo/data-vio.c:1905:52: sparse: sparse: incorrect type in 
argument 4 (different base types) @@     expected unsigned int bi_opf @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/data-vio.c:1905:52: sparse:     expected unsigned int 
bi_opf
   drivers/md/dm-vdo/data-vio.c:1905:52: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/data-vio.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
   drivers/md/dm-vdo/data-vio.c: note: in included file (through 
include/linux/wait.h, include/linux/mempool.h, include/linux/bio.h, ...):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   drivers/md/dm-vdo/data-vio.c: note: in included file (through 
drivers/md/dm-vdo/data-vio.h):
   include/linux/bio.h:592:9: sparse: sparse: context imbalance in 
'acquire_permit' - unexpected unlock
   drivers/md/dm-vdo/data-vio.c:958:6: sparse: sparse: context imbalance in 
'vdo_launch_bio' - different lock contexts for basic block
--
>> drivers/md/dm-vdo/io-submitter.c:353:65: sparse: sparse: restricted 
>> blk_opf_t degrades to integer
   drivers/md/dm-vdo/io-submitter.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
--
>> drivers/md/dm-vdo/encodings.c:88:21: sparse: sparse: symbol 
>> 'VDO_LAYOUT_HEADER_3_0' was not declared. Should it be static?
   drivers/md/dm-vdo/encodings.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
--
>> drivers/md/dm-vdo/index.c:735:40: sparse: sparse: Using plain integer as 
>> NULL pointer
   drivers/md/dm-vdo/index.c:738:31: sparse: sparse: Using plain integer as 
NULL pointer
   drivers/md/dm-vdo/index.c:740:34: sparse: sparse: Using plain integer as 
NULL pointer
   drivers/md/dm-vdo/index.c:746:30: sparse: sparse: Using plain integer as 
NULL pointer
   drivers/md/dm-vdo/index.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
--
>> drivers/md/dm-vdo/packer.c:471:32: sparse: sparse: incorrect type in 
>> argument 4 (different base types) @@     expected unsigned int bi_opf @@     
>> got restricted blk_opf_t @@
   drivers/md/dm-vdo/packer.c:471:32: sparse:     expected unsigned int bi_opf
   drivers/md/dm-vdo/packer.c:471:32: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/packer.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
   drivers/md/dm-vdo/packer.c: note: in included file (through 
drivers/md/dm-vdo/packer.h):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
--
>> drivers/md/dm-vdo/recovery-journal.c:37:73: sparse: sparse: mixed bitwiseness
>> drivers/md/dm-vdo/recovery-journal.c:1401:75: sparse: sparse: incorrect type 
>> in argument 5 (different base types) @@     expected unsigned int operation 
>> @@     got restricted blk_opf_t @@
   drivers/md/dm-vdo/recovery-journal.c:1401:75: sparse:     expected unsigned 
int operation
   drivers/md/dm-vdo/recovery-journal.c:1401:75: sparse:     got restricted 
blk_opf_t
   drivers/md/dm-vdo/recovery-journal.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
   drivers/md/dm-vdo/recovery-journal.c: note: in included file (through 
drivers/md/dm-vdo/recovery-journal.h):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   drivers/md/dm-vdo/recovery-journal.c: note: in included file:
>> drivers/md/dm-vdo/io-submitter.h:44:44: sparse: sparse: incorrect type in 
>> argument 5 (different base types) @@     expected unsigned int operation @@  
>>    got restricted blk_opf_t @@
   drivers/md/dm-vdo/io-submitter.h:44:44: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/io-submitter.h:44:44: sparse:     got restricted blk_opf_t
--
>> drivers/md/dm-vdo/vio.c:186:21: sparse: sparse: incorrect type in assignment 
>> (different base types) @@     expected restricted blk_opf_t [usertype] 
>> bi_opf @@     got unsigned int bi_opf @@
   drivers/md/dm-vdo/vio.c:186:21: sparse:     expected restricted blk_opf_t 
[usertype] bi_opf
   drivers/md/dm-vdo/vio.c:186:21: sparse:     got unsigned int bi_opf
>> drivers/md/dm-vdo/vio.c:201:38: sparse: sparse: incorrect type in argument 3 
>> (different base types) @@     expected restricted blk_opf_t [usertype] opf 
>> @@     got unsigned int bi_opf @@
   drivers/md/dm-vdo/vio.c:201:38: sparse:     expected restricted blk_opf_t 
[usertype] opf
   drivers/md/dm-vdo/vio.c:201:38: sparse:     got unsigned int bi_opf
   drivers/md/dm-vdo/vio.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
   drivers/md/dm-vdo/vio.c: note: in included file (through 
include/linux/wait.h, include/linux/mempool.h, include/linux/bio.h, ...):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
--
>> drivers/md/dm-vdo/repair.c:1754:68: sparse: sparse: incorrect type in 
>> argument 5 (different base types) @@     expected unsigned int operation @@  
>>    got restricted blk_opf_t @@
   drivers/md/dm-vdo/repair.c:1754:68: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/repair.c:1754:68: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/repair.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
--
>> drivers/md/dm-vdo/vdo.c:298:50: sparse: sparse: incorrect type in argument 4 
>> (different base types) @@     expected unsigned int bi_opf @@     got 
>> restricted blk_opf_t @@
   drivers/md/dm-vdo/vdo.c:298:50: sparse:     expected unsigned int bi_opf
   drivers/md/dm-vdo/vdo.c:298:50: sparse:     got restricted blk_opf_t
>> drivers/md/dm-vdo/vdo.c:820:33: sparse: sparse: incorrect type in argument 5 
>> (different base types) @@     expected unsigned int operation @@     got 
>> restricted blk_opf_t @@
   drivers/md/dm-vdo/vdo.c:820:33: sparse:     expected unsigned int operation
   drivers/md/dm-vdo/vdo.c:820:33: sparse:     got restricted blk_opf_t
>> drivers/md/dm-vdo/vdo.c:892:53: sparse: sparse: Using plain integer as NULL 
>> pointer
   drivers/md/dm-vdo/vdo.c:1034:61: sparse: sparse: incorrect type in argument 
5 (different base types) @@     expected unsigned int operation @@     got 
restricted blk_opf_t @@
   drivers/md/dm-vdo/vdo.c:1034:61: sparse:     expected unsigned int operation
   drivers/md/dm-vdo/vdo.c:1034:61: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/vdo.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
   drivers/md/dm-vdo/vdo.c: note: in included file (through 
include/linux/wait.h, include/linux/wait_bit.h, include/linux/fs.h, ...):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
--
>> drivers/md/dm-vdo/slab-depot.c:343:66: sparse: sparse: incorrect type in 
>> argument 5 (different base types) @@     expected unsigned int operation @@  
>>    got restricted blk_opf_t @@
   drivers/md/dm-vdo/slab-depot.c:343:66: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/slab-depot.c:343:66: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c:776:49: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/slab-depot.c:776:49: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/slab-depot.c:776:49: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c:1211:63: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/slab-depot.c:1211:63: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/slab-depot.c:1211:63: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c:2275:33: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/slab-depot.c:2275:33: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/slab-depot.c:2275:33: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c:2482:33: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/slab-depot.c:2482:33: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/slab-depot.c:2482:33: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c:2922:33: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/slab-depot.c:2922:33: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/slab-depot.c:2922:33: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c:4522:33: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/slab-depot.c:4522:33: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/slab-depot.c:4522:33: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c:4563:57: sparse: sparse: incorrect type in 
argument 5 (different base types) @@     expected unsigned int operation @@     
got restricted blk_opf_t @@
   drivers/md/dm-vdo/slab-depot.c:4563:57: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/slab-depot.c:4563:57: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c: note: in included file (through 
include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
   include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always 
evaluates to false
   drivers/md/dm-vdo/slab-depot.c: note: in included file (through 
include/linux/wait.h, include/linux/wait_bit.h, include/linux/fs.h, ...):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   drivers/md/dm-vdo/slab-depot.c: note: in included file:
>> drivers/md/dm-vdo/io-submitter.h:44:44: sparse: sparse: incorrect type in 
>> argument 5 (different base types) @@     expected unsigned int operation @@  
>>    got restricted blk_opf_t @@
   drivers/md/dm-vdo/io-submitter.h:44:44: sparse:     expected unsigned int 
operation
   drivers/md/dm-vdo/io-submitter.h:44:44: sparse:     got restricted blk_opf_t
   drivers/md/dm-vdo/slab-depot.c: note: in included file (through 
include/linux/wait.h, include/linux/wait_bit.h, include/linux/fs.h, ...):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates 
to true

vim +1211 drivers/md/dm-vdo/dedupe.c

e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1187  
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1188  /**
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1189   * start_verifying() - Begin the 
data verification phase.
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1190   * @lock: The hash lock (must be 
LOCKING).
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1191   * @agent: The data_vio to use 
to read and compare candidate data.
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1192   *
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1193   * Continue the deduplication 
path for a hash lock by using the agent to read (and possibly
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1194   * decompress) the data at the 
candidate duplicate location, comparing it to the data in the agent
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1195   * to verify that the candidate 
is identical to all the data_vios sharing the hash. If so, it can
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1196   * be deduplicated against, 
otherwise a data_vio allocation will have to be written to and used for
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1197   * dedupe.
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1198   */
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1199  static void 
start_verifying(struct hash_lock *lock, struct data_vio *agent)
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1200  {
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1201   int result;
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1202   struct vio *vio = &agent->vio;
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1203   char *buffer = 
(vdo_is_state_compressed(agent->duplicate.state) ?
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1204                   (char *) 
agent->compression.block :
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1205                   
agent->scratch_block);
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1206  
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1207   lock->state = 
VDO_HASH_LOCK_VERIFYING;
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1208   
ASSERT_LOG_ONLY(!lock->verified, "hash lock only verifies advice once");
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1209  
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1210   agent->last_async_operation = 
VIO_ASYNC_OP_VERIFY_DUPLICATION;
e043ebf2d9a2f1 Matthew Sakai 2023-11-16 @1211   result = vio_reset_bio(vio, 
buffer, verify_endio, REQ_OP_READ,
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1212                          
agent->duplicate.pbn);
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1213   if (result != VDO_SUCCESS) {
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1214           
set_data_vio_hash_zone_callback(agent, finish_verifying);
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1215           
continue_data_vio_with_error(agent, result);
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1216           return;
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1217   }
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1218  
8185b1fe0c084d Mike Snitzer  2023-08-25  1219   
set_data_vio_bio_zone_callback(agent, vdo_submit_vio);
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1220   
vdo_launch_completion_with_priority(&vio->completion, BIO_Q_VERIFY_PRIORITY);
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1221  }
e043ebf2d9a2f1 Matthew Sakai 2023-11-16  1222  

:::::: The code at line 1211 was first introduced by commit
:::::: e043ebf2d9a2f1aaeca0e0e22fbb3505d37e80f2 dm vdo: add hash locks and hash 
zones

:::::: TO: Matthew Sakai <[email protected]>
:::::: CC: Mike Snitzer <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to