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

Signed-off-by: Christoph Hellwig <[email protected]>
---
 drivers/md/dm-integrity.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c
index 77c1f645f8438..86350d7c1175f 100644
--- a/drivers/md/dm-integrity.c
+++ b/drivers/md/dm-integrity.c
@@ -1953,7 +1953,7 @@ static bool __journal_read_write(struct dm_integrity_io 
*dio, struct bio *bio,
                n_sectors -= bv.bv_len >> SECTOR_SHIFT;
                bio_advance_iter(bio, &bio->bi_iter, bv.bv_len);
 retry_kmap:
-               mem = kmap_atomic(bv.bv_page);
+               mem = bvec_kmap_local(&bv);
                if (likely(dio->op == REQ_OP_WRITE))
                        flush_dcache_page(bv.bv_page);
 
@@ -1967,7 +1967,7 @@ static bool __journal_read_write(struct dm_integrity_io 
*dio, struct bio *bio,
 
                                if (unlikely(journal_entry_is_inprogress(je))) {
                                        flush_dcache_page(bv.bv_page);
-                                       kunmap_atomic(mem);
+                                       kunmap_local(mem);
 
                                        
__io_wait_event(ic->copy_to_journal_wait, !journal_entry_is_inprogress(je));
                                        goto retry_kmap;
@@ -2058,7 +2058,7 @@ static bool __journal_read_write(struct dm_integrity_io 
*dio, struct bio *bio,
 
                if (unlikely(dio->op == REQ_OP_READ))
                        flush_dcache_page(bv.bv_page);
-               kunmap_atomic(mem);
+               kunmap_local(mem);
        } while (n_sectors);
 
        if (likely(dio->op == REQ_OP_WRITE)) {
-- 
2.30.2

--
dm-devel mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/dm-devel

Reply via email to