X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=fs%2Ff2fs%2Fdata.c;h=c3e1ffa0c8d6461c7d31e1d86c85d58f579af15b;hb=d323d005ac4a2d413128267af76bb9d71f7303da;hp=0cc8de2839c41b5ea95c1bbf54b91f376013c8c8;hpb=2da3e027461ab0148384b02bd5905f1a7b335dff;p=deliverable%2Flinux.git diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 0cc8de2839c4..c3e1ffa0c8d6 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -566,7 +566,7 @@ out: * b. do not use extent cache for better performance * c. give the block addresses to blockdev */ -static int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map, +int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map, int create, int flag) { unsigned int maxblocks = map->m_len; @@ -1355,6 +1355,10 @@ static int f2fs_write_data_pages(struct address_space *mapping, available_free_memory(sbi, DIRTY_DENTS)) goto skip_write; + /* skip writing during file defragment */ + if (is_inode_flag_set(F2FS_I(inode), FI_DO_DEFRAG)) + goto skip_write; + /* during POR, we don't need to trigger writepage at all. */ if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING))) goto skip_write;