This patch allows fallocate to allocate physical blocks for pinned file.

Signed-off-by: Jaegeuk Kim <[email protected]>
---
 fs/f2fs/file.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index e7c368db8185..cdfd4338682d 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1528,7 +1528,12 @@ static int expand_inode_data(struct inode *inode, loff_t 
offset,
        if (off_end)
                map.m_len++;
 
-       err = f2fs_map_blocks(inode, &map, 1, F2FS_GET_BLOCK_PRE_AIO);
+       if (f2fs_is_pinned_file(inode))
+               map.m_seg_type = CURSEG_COLD_DATA;
+
+       err = f2fs_map_blocks(inode, &map, 1, (f2fs_is_pinned_file(inode) ?
+                                               F2FS_GET_BLOCK_PRE_DIO :
+                                               F2FS_GET_BLOCK_PRE_AIO));
        if (err) {
                pgoff_t last_off;
 
-- 
2.19.0.605.g01d371f741-goog

Reply via email to