Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[cascardo/linux.git] / mm / page_io.c
index dcc5d37..16bd82f 100644 (file)
@@ -166,6 +166,8 @@ int generic_swapfile_activate(struct swap_info_struct *sis,
                unsigned block_in_page;
                sector_t first_block;
 
+               cond_resched();
+
                first_block = bmap(inode, probe_block);
                if (first_block == 0)
                        goto bad_bmap;
@@ -317,9 +319,10 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
                ret = -ENOMEM;
                goto out;
        }
-       bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
        if (wbc->sync_mode == WB_SYNC_ALL)
-               bio->bi_rw |= REQ_SYNC;
+               bio_set_op_attrs(bio, REQ_OP_WRITE, REQ_SYNC);
+       else
+               bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
        count_vm_event(PSWPOUT);
        set_page_writeback(page);
        unlock_page(page);