aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2009-01-07 09:48:51 -0500
committerChris Mason <chris.mason@oracle.com>2009-01-07 09:48:51 -0500
commit9ab86c8e01c3f298dba0cbf2502c635b7f6fc6f9 (patch)
tree4404dc71b5987f240fa8e59d24586304d04d8810
parentcc7172defcf253335b16cf703fe4ac1ade15e1b1 (diff)
Btrfs: kmap_atomic(KM_USER0) is safe for btrfs_readpage_end_io_hook
None of the checksum verification code schedules, so we can use the faster kmap_atomic Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/inode.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index cdb701165a05..8adfe059ab41 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -1748,7 +1748,7 @@ static int btrfs_readpage_end_io_hook(struct page *page, u64 start, u64 end,
1748 } else { 1748 } else {
1749 ret = get_state_private(io_tree, start, &private); 1749 ret = get_state_private(io_tree, start, &private);
1750 } 1750 }
1751 kaddr = kmap(page); 1751 kaddr = kmap_atomic(page, KM_USER0);
1752 if (ret) 1752 if (ret)
1753 goto zeroit; 1753 goto zeroit;
1754 1754
@@ -1757,7 +1757,7 @@ static int btrfs_readpage_end_io_hook(struct page *page, u64 start, u64 end,
1757 if (csum != private) 1757 if (csum != private)
1758 goto zeroit; 1758 goto zeroit;
1759 1759
1760 kunmap(page); 1760 kunmap_atomic(kaddr, KM_USER0);
1761good: 1761good:
1762 /* if the io failure tree for this inode is non-empty, 1762 /* if the io failure tree for this inode is non-empty,
1763 * check to see if we've recovered from a failed IO 1763 * check to see if we've recovered from a failed IO
@@ -1772,7 +1772,7 @@ zeroit:
1772 (unsigned long long)private); 1772 (unsigned long long)private);
1773 memset(kaddr + offset, 1, end - start + 1); 1773 memset(kaddr + offset, 1, end - start + 1);
1774 flush_dcache_page(page); 1774 flush_dcache_page(page);
1775 kunmap(page); 1775 kunmap_atomic(kaddr, KM_USER0);
1776 if (private == 0) 1776 if (private == 0)
1777 return 0; 1777 return 0;
1778 return -EIO; 1778 return -EIO;