diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 13:06:39 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 13:06:39 -0500 |
| commit | 9cfc86249f32d984339c6d1f8a1fd1326989b3b8 (patch) | |
| tree | 56428d319483f54949de8d9d0a5b3f715287ed91 /fs/xfs | |
| parent | f42647acc4eab1befa9e290691ed7a40f9a7d3cc (diff) | |
| parent | 243797f59b748f679ab88d456fcc4f92236d724b (diff) | |
Merge branch 'akpm'
* akpm: (173 commits)
genalloc: use bitmap_find_next_zero_area
ia64: use bitmap_find_next_zero_area
sparc: use bitmap_find_next_zero_area
mlx4: use bitmap_find_next_zero_area
isp1362-hcd: use bitmap_find_next_zero_area
iommu-helper: use bitmap library
bitmap: introduce bitmap_set, bitmap_clear, bitmap_find_next_zero_area
qnx4: use hweight8
qnx4fs: remove remains of the (defunct) write support
resource: constify arg to resource_size() and resource_type()
gru: send cross partition interrupts using the gru
gru: function to generate chipset IPI values
gru: update driver version number
gru: improve GRU TLB dropin statistics
gru: fix GRU interrupt race at deallocate
gru: add hugepage support
gru: fix bug in allocation of kernel contexts
gru: update GRU structures to match latest hardware spec
gru: check for correct GRU chiplet assignment
gru: remove stray local_irq_enable
...
Diffstat (limited to 'fs/xfs')
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index d798c54296eb..66abe36c1213 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c | |||
| @@ -1474,19 +1474,13 @@ xfs_vm_direct_IO( | |||
| 1474 | 1474 | ||
| 1475 | bdev = xfs_find_bdev_for_inode(XFS_I(inode)); | 1475 | bdev = xfs_find_bdev_for_inode(XFS_I(inode)); |
| 1476 | 1476 | ||
| 1477 | if (rw == WRITE) { | 1477 | iocb->private = xfs_alloc_ioend(inode, rw == WRITE ? |
| 1478 | iocb->private = xfs_alloc_ioend(inode, IOMAP_UNWRITTEN); | 1478 | IOMAP_UNWRITTEN : IOMAP_READ); |
| 1479 | ret = blockdev_direct_IO_own_locking(rw, iocb, inode, | 1479 | |
| 1480 | bdev, iov, offset, nr_segs, | 1480 | ret = blockdev_direct_IO_no_locking(rw, iocb, inode, bdev, iov, |
| 1481 | xfs_get_blocks_direct, | 1481 | offset, nr_segs, |
| 1482 | xfs_end_io_direct); | 1482 | xfs_get_blocks_direct, |
| 1483 | } else { | 1483 | xfs_end_io_direct); |
| 1484 | iocb->private = xfs_alloc_ioend(inode, IOMAP_READ); | ||
| 1485 | ret = blockdev_direct_IO_no_locking(rw, iocb, inode, | ||
| 1486 | bdev, iov, offset, nr_segs, | ||
| 1487 | xfs_get_blocks_direct, | ||
| 1488 | xfs_end_io_direct); | ||
| 1489 | } | ||
| 1490 | 1484 | ||
| 1491 | if (unlikely(ret != -EIOCBQUEUED && iocb->private)) | 1485 | if (unlikely(ret != -EIOCBQUEUED && iocb->private)) |
| 1492 | xfs_destroy_ioend(iocb->private); | 1486 | xfs_destroy_ioend(iocb->private); |
