From cea56e55a0164100f49da28e83751d6b1c27c671 Mon Sep 17 00:00:00 2001 From: Yunlei He Date: Sun, 18 Sep 2016 08:16:56 +0800 Subject: f2fs: preallocate blocks for encrypted file This patch allow preallocates data blocks for buffered aio writes in encrypted file. Signed-off-by: Yunlei He Reviewed-by: Chao Yu [Jaegeuk Kim: fix to avoid BUG_ON] Signed-off-by: Jaegeuk Kim Conflicts: fs/f2fs/data.c --- fs/f2fs/data.c | 6 +----- fs/f2fs/segment.c | 4 +--- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 426983284..084b98ba9 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -633,9 +633,6 @@ ssize_t f2fs_preallocate_blocks(struct inode *inode, loff_t pos, size_t count, b map.m_next_pgofs = NULL; - if (f2fs_encrypted_inode(inode)) - return 0; - if (dio) { ret = f2fs_convert_inline_inode(inode); if (ret) @@ -1523,8 +1520,7 @@ static int prepare_write_begin(struct f2fs_sb_info *sbi, * we already allocated all the blocks, so we don't need to get * the block addresses when there is no need to fill the page. */ - if (!f2fs_has_inline_data(inode) && !f2fs_encrypted_inode(inode) && - len == PAGE_SIZE) + if (!f2fs_has_inline_data(inode) && len == PAGE_SIZE) return 0; if (f2fs_has_inline_data(inode) || diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index faeb3a255..9970004ce 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1656,11 +1656,9 @@ void f2fs_wait_on_encrypted_page_writeback(struct f2fs_sb_info *sbi, { struct page *cpage; - if (blkaddr == NEW_ADDR) + if (blkaddr == NEW_ADDR || blkaddr == NULL_ADDR) return; - f2fs_bug_on(sbi, blkaddr == NULL_ADDR); - cpage = find_lock_page(META_MAPPING(sbi), blkaddr); if (cpage) { f2fs_wait_on_page_writeback(cpage, DATA, true); -- cgit v1.2.3