From da7e7e8c73cd41a79be44e28cdfce39ad7ffc986 Mon Sep 17 00:00:00 2001 From: bobijam Date: Thu, 18 Oct 2007 04:31:49 +0000 Subject: [PATCH] Branch HEAD b=13626 i=johann, adilger use k(un)map_atomic instead of k(un)map for short/tight code paths. --- lustre/llite/rw.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lustre/llite/rw.c b/lustre/llite/rw.c index 017ec52..dc99195 100644 --- a/lustre/llite/rw.c +++ b/lustre/llite/rw.c @@ -169,8 +169,10 @@ void ll_truncate(struct inode *inode) struct ll_async_page *llap = llap_cast_private(page); if (llap != NULL) { llap->llap_checksum = - crc32_le(0, kmap(page), CFS_PAGE_SIZE); - kunmap(page); + crc32_le(0, + kmap_atomic(page, KM_USER0), + CFS_PAGE_SIZE); + kunmap_atomic(page, KM_USER0); } page_cache_release(page); } @@ -267,8 +269,8 @@ int ll_prepare_write(struct file *file, struct page *page, unsigned from, if (lvb.lvb_size <= offset) { LL_CDEBUG_PAGE(D_PAGE, page, "kms "LPU64" <= offset "LPU64"\n", lvb.lvb_size, offset); - memset(kmap(page), 0, CFS_PAGE_SIZE); - kunmap(page); + memset(kmap_atomic(page, KM_USER0), 0, CFS_PAGE_SIZE); + kunmap_atomic(page, KM_USER0); GOTO(prepare_done, rc = 0); } @@ -641,8 +643,9 @@ struct ll_async_page *llap_from_page(struct page *page, unsigned origin) out: if (unlikely(sbi->ll_flags & LL_SBI_CHECKSUM)) { __u32 csum = 0; - csum = crc32_le(csum, kmap(page), CFS_PAGE_SIZE); - kunmap(page); + csum = crc32_le(csum, kmap_atomic(page, KM_USER0), + CFS_PAGE_SIZE); + kunmap_atomic(page, KM_USER0); if (origin == LLAP_ORIGIN_READAHEAD || origin == LLAP_ORIGIN_READPAGE) { llap->llap_checksum = 0; @@ -713,8 +716,9 @@ static int queue_or_sync_write(struct obd_export *exp, struct inode *inode, llap->llap_checksum != 0)) { __u32 csum = 0; struct page *page = llap->llap_page; - csum = crc32_le(csum, kmap(page), CFS_PAGE_SIZE); - kunmap(page); + csum = crc32_le(csum, kmap_atomic(page, KM_USER0), + CFS_PAGE_SIZE); + kunmap_atomic(page, KM_USER0); if (llap->llap_checksum == csum) { CDEBUG(D_PAGE, "page %p cksum %x confirmed\n", page, csum); -- 1.8.3.1