Merge tag 'f2fs-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk...
[linux-block.git] / fs / f2fs / data.c
index 6a8db4abdf5f32b9513c5bc823ea2ed37418942d..0ca530afc684ee622fbff18781e432420c1bc12a 100644 (file)
@@ -186,7 +186,7 @@ static void f2fs_write_end_io(struct bio *bio)
                        continue;
                }
 
-               fscrypt_pullback_bio_page(&page, true);
+               fscrypt_finalize_bounce_page(&page);
 
                if (unlikely(bio->bi_status)) {
                        mapping_set_error(page->mapping, -EIO);
@@ -363,10 +363,9 @@ static bool __has_merged_page(struct bio *bio, struct inode *inode,
 
        bio_for_each_segment_all(bvec, bio, iter_all) {
 
-               if (bvec->bv_page->mapping)
-                       target = bvec->bv_page;
-               else
-                       target = fscrypt_control_page(bvec->bv_page);
+               target = bvec->bv_page;
+               if (fscrypt_is_bounce_page(target))
+                       target = fscrypt_pagecache_page(target);
 
                if (inode && inode == target->mapping->host)
                        return true;
@@ -1785,8 +1784,9 @@ static int encrypt_one_page(struct f2fs_io_info *fio)
        f2fs_wait_on_block_writeback(inode, fio->old_blkaddr);
 
 retry_encrypt:
-       fio->encrypted_page = fscrypt_encrypt_page(inode, fio->page,
-                       PAGE_SIZE, 0, fio->page->index, gfp_flags);
+       fio->encrypted_page = fscrypt_encrypt_pagecache_blocks(fio->page,
+                                                              PAGE_SIZE, 0,
+                                                              gfp_flags);
        if (IS_ERR(fio->encrypted_page)) {
                /* flush pending IOs and wait for a while in the ENOMEM case */
                if (PTR_ERR(fio->encrypted_page) == -ENOMEM) {
@@ -1958,8 +1958,7 @@ got_it:
                err = f2fs_inplace_write_data(fio);
                if (err) {
                        if (f2fs_encrypted_file(inode))
-                               fscrypt_pullback_bio_page(&fio->encrypted_page,
-                                                                       true);
+                               fscrypt_finalize_bounce_page(&fio->encrypted_page);
                        if (PageWriteback(page))
                                end_page_writeback(page);
                } else {