diff options
author | Yunlei He <heyunlei@huawei.com> | 2016-09-18 08:16:56 +0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-09-22 11:43:08 -0700 |
commit | 5d4c0af41fd4cc26cb75af4f3de7fb63c91209c1 (patch) | |
tree | 70e7c5105a9791897f2ba94e0e2264130405df02 /fs/f2fs | |
parent | 5bc994a043470c3ee544edaefbf93406d00f8de7 (diff) |
f2fs: preallocate blocks for encrypted file
This patch allow preallocates data blocks for buffered aio writes
in encrypted file.
Signed-off-by: Yunlei He <heyunlei@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
[Jaegeuk Kim: fix to avoid BUG_ON]
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/data.c | 6 | ||||
-rw-r--r-- | 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 25e3c302b72f..637b81d0f9f0 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -639,9 +639,6 @@ ssize_t f2fs_preallocate_blocks(struct kiocb *iocb, struct iov_iter *from) map.m_next_pgofs = NULL; - if (f2fs_encrypted_inode(inode)) - return 0; - if (iocb->ki_flags & IOCB_DIRECT) { ret = f2fs_convert_inline_inode(inode); if (ret) @@ -1532,8 +1529,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 101b58f1d636..c4d0472cf47d 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1675,11 +1675,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); |