Commit c12d205d authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Mike Snitzer
Browse files

dm integrity: use bvec_kmap_local in integrity_metadata



Using local kmaps slightly reduces the chances to stray writes, and
the bvec interface cleans up the code a little bit.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 08997537
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1770,7 +1770,7 @@ static void integrity_metadata(struct work_struct *w)
			char *mem, *checksums_ptr;

again:
			mem = (char *)kmap_atomic(bv.bv_page) + bv.bv_offset;
			mem = bvec_kmap_local(&bv);
			pos = 0;
			checksums_ptr = checksums;
			do {
@@ -1780,7 +1780,7 @@ static void integrity_metadata(struct work_struct *w)
				pos += ic->sectors_per_block << SECTOR_SHIFT;
				sector += ic->sectors_per_block;
			} while (pos < bv.bv_len && sectors_to_process && checksums != checksums_onstack);
			kunmap_atomic(mem);
			kunmap_local(mem);

			r = dm_integrity_rw_tag(ic, checksums, &dio->metadata_block, &dio->metadata_offset,
						checksums_ptr - checksums, dio->op == REQ_OP_READ ? TAG_CMP : TAG_WRITE);