Skip to content

Commit b0c21c6

Browse files
author
Andreas Gruenbacher
committed
gfs2: Convert remaining kmap_atomic calls to kmap_local_page
Replace the remaining instances of kmap_atomic() ... kunmap_atomic() with kmap_local_page() ... kunmap_local(). In gfs2_write_buf_to_page(), we can call flush_dcache_page() after unmapping the page. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
1 parent 58721bd commit b0c21c6

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

fs/gfs2/lops.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -427,10 +427,11 @@ static bool gfs2_jhead_pg_srch(struct gfs2_jdesc *jd,
427427
{
428428
struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
429429
struct gfs2_log_header_host lh;
430-
void *kaddr = kmap_atomic(page);
430+
void *kaddr;
431431
unsigned int offset;
432432
bool ret = false;
433433

434+
kaddr = kmap_local_page(page);
434435
for (offset = 0; offset < PAGE_SIZE; offset += sdp->sd_sb.sb_bsize) {
435436
if (!__get_log_header(sdp, kaddr + offset, 0, &lh)) {
436437
if (lh.lh_sequence >= head->lh_sequence)
@@ -441,7 +442,7 @@ static bool gfs2_jhead_pg_srch(struct gfs2_jdesc *jd,
441442
}
442443
}
443444
}
444-
kunmap_atomic(kaddr);
445+
kunmap_local(kaddr);
445446
return ret;
446447
}
447448

@@ -626,11 +627,11 @@ static void gfs2_check_magic(struct buffer_head *bh)
626627
__be32 *ptr;
627628

628629
clear_buffer_escaped(bh);
629-
kaddr = kmap_atomic(bh->b_page);
630+
kaddr = kmap_local_page(bh->b_page);
630631
ptr = kaddr + bh_offset(bh);
631632
if (*ptr == cpu_to_be32(GFS2_MAGIC))
632633
set_buffer_escaped(bh);
633-
kunmap_atomic(kaddr);
634+
kunmap_local(kaddr);
634635
}
635636

636637
static int blocknr_cmp(void *priv, const struct list_head *a,
@@ -699,10 +700,10 @@ static void gfs2_before_commit(struct gfs2_sbd *sdp, unsigned int limit,
699700
void *kaddr;
700701
page = mempool_alloc(gfs2_page_pool, GFP_NOIO);
701702
ptr = page_address(page);
702-
kaddr = kmap_atomic(bd2->bd_bh->b_page);
703+
kaddr = kmap_local_page(bd2->bd_bh->b_page);
703704
memcpy(ptr, kaddr + bh_offset(bd2->bd_bh),
704705
bd2->bd_bh->b_size);
705-
kunmap_atomic(kaddr);
706+
kunmap_local(kaddr);
706707
*(__be32 *)ptr = 0;
707708
clear_buffer_escaped(bd2->bd_bh);
708709
unlock_buffer(bd2->bd_bh);

fs/gfs2/quota.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -764,10 +764,10 @@ static int gfs2_write_buf_to_page(struct gfs2_inode *ip, unsigned long index,
764764
}
765765

766766
/* Write to the page, now that we have setup the buffer(s) */
767-
kaddr = kmap_atomic(page);
767+
kaddr = kmap_local_page(page);
768768
memcpy(kaddr + off, buf, bytes);
769+
kunmap_local(kaddr);
769770
flush_dcache_page(page);
770-
kunmap_atomic(kaddr);
771771
unlock_page(page);
772772
put_page(page);
773773

0 commit comments

Comments
 (0)