f2fs: skip encrypted inode in ASYNC IPU policy
authorHou Pengyang <houpengyang@huawei.com>
Fri, 21 Apr 2017 12:41:48 +0000 (12:41 +0000)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 24 Apr 2017 20:13:24 +0000 (13:13 -0700)
Async request may be throttled in block layer, so page for async may keep WRITE_BACK
for a long time.

For encrytped inode, we need wait on page writeback no matter if the device supports
BDI_CAP_STABLE_WRITES. This may result in a higher waiting page writeback time for
async encrypted inode page.

This patch skips IPU for encrypted inode's updating write.

Signed-off-by: Hou Pengyang <houpengyang@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.h

index 93cc4e5..8ad22b8 100644 (file)
@@ -593,7 +593,8 @@ static inline bool need_inplace_update(struct inode *inode,
         */
        if (policy & (0x1 << F2FS_IPU_ASYNC) &&
                        fio && fio->op == REQ_OP_WRITE &&
-                       !(fio->op_flags & REQ_SYNC))
+                       !(fio->op_flags & REQ_SYNC) &&
+                       !f2fs_encrypted_inode(inode))
                return true;
 
        /* this is only set during fdatasync */