pass iov_iter to ->direct_IO()
[firefly-linux-kernel-4.4.55.git] / mm / page_io.c
index 7c59ef681381bb7afeef2cf5207d269e9a95c1f8..0ed0644c73db0d08077acc0501b111d0aa23f6ac 100644 (file)
@@ -263,16 +263,18 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
                        .iov_base = kmap(page),
                        .iov_len  = PAGE_SIZE,
                };
+               struct iov_iter from;
 
                init_sync_kiocb(&kiocb, swap_file);
                kiocb.ki_pos = page_file_offset(page);
                kiocb.ki_nbytes = PAGE_SIZE;
+               iov_iter_init(&from, &iov, 1, PAGE_SIZE, 0);
 
                set_page_writeback(page);
                unlock_page(page);
                ret = mapping->a_ops->direct_IO(KERNEL_WRITE,
-                                               &kiocb, &iov,
-                                               kiocb.ki_pos, 1);
+                                               &kiocb, &from,
+                                               kiocb.ki_pos);
                kunmap(page);
                if (ret == PAGE_SIZE) {
                        count_vm_event(PSWPOUT);