diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_buf.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_buf.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 81f4ef27de3e..bd111b7e1daa 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c | |||
@@ -268,7 +268,8 @@ xfs_buf_free( | |||
268 | uint i; | 268 | uint i; |
269 | 269 | ||
270 | if (xfs_buf_is_vmapped(bp)) | 270 | if (xfs_buf_is_vmapped(bp)) |
271 | vunmap(bp->b_addr - bp->b_offset); | 271 | vm_unmap_ram(bp->b_addr - bp->b_offset, |
272 | bp->b_page_count); | ||
272 | 273 | ||
273 | for (i = 0; i < bp->b_page_count; i++) { | 274 | for (i = 0; i < bp->b_page_count; i++) { |
274 | struct page *page = bp->b_pages[i]; | 275 | struct page *page = bp->b_pages[i]; |
@@ -388,8 +389,8 @@ _xfs_buf_map_pages( | |||
388 | bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; | 389 | bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; |
389 | bp->b_flags |= XBF_MAPPED; | 390 | bp->b_flags |= XBF_MAPPED; |
390 | } else if (flags & XBF_MAPPED) { | 391 | } else if (flags & XBF_MAPPED) { |
391 | bp->b_addr = vmap(bp->b_pages, bp->b_page_count, | 392 | bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, |
392 | VM_MAP, PAGE_KERNEL); | 393 | -1, PAGE_KERNEL); |
393 | if (unlikely(bp->b_addr == NULL)) | 394 | if (unlikely(bp->b_addr == NULL)) |
394 | return -ENOMEM; | 395 | return -ENOMEM; |
395 | bp->b_addr += bp->b_offset; | 396 | bp->b_addr += bp->b_offset; |