Messages in this thread Patch in this message | | | From | Omar Sandoval <> | Subject | [PATCH 3/8] swap: don't add ITER_BVEC flag to direct_IO rw | Date | Sun, 14 Dec 2014 21:26:57 -0800 |
| |
The rw argument to direct_IO has some ill-defined semantics. Some filesystems (e.g., ext4, FAT) decide whether they're doing a write with rw == WRITE, but others (e.g., XFS) check rw & WRITE. Let's set a good example in the swap file code and say ITER_BVEC belongs in iov_iter->flags but not in rw. This caters to the least common denominator and avoids a sweeping change of every direct_IO implementation for now.
Signed-off-by: Omar Sandoval <osandov@osandov.com> --- mm/page_io.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/mm/page_io.c b/mm/page_io.c index 1630ac0..c229f88 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -285,8 +285,7 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc, set_page_writeback(page); unlock_page(page); mutex_lock(&inode->i_mutex); - ret = mapping->a_ops->direct_IO(ITER_BVEC | WRITE, - &kiocb, &from, + ret = mapping->a_ops->direct_IO(WRITE, &kiocb, &from, kiocb.ki_pos); mutex_unlock(&inode->i_mutex); if (ret == PAGE_SIZE) { -- 2.1.3
| |