summaryrefslogtreecommitdiffstats
path: root/fs/f2fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2015-03-17 00:54:52 +0100
committerJaegeuk Kim <jaegeuk@kernel.org>2015-04-11 00:08:46 +0200
commit83e21db6939dd6ff50a81d54aaef4b44847aefff (patch)
treeef4655d3fc48a89712fdb5baf529fb680810663b /fs/f2fs
parentf2fs: enhance multi-threads performance (diff)
downloadlinux-83e21db6939dd6ff50a81d54aaef4b44847aefff.tar.xz
linux-83e21db6939dd6ff50a81d54aaef4b44847aefff.zip
f2fs: avoid wrong f2fs_bug_on when truncating inline_data
This patch removes wrong f2fs_bug_on in truncate_inline_inode. When there is no space, it can happen a corner case where i_isze is over MAX_INLINE_SIZE while its inode is still inline_data. The scenario is 1. write small data into file #A. 2. fill the whole partition to 100%. 3. truncate 4096 on file #A. 4. write data at 8192 offset. --> f2fs_write_begin -> -ENOSPC = f2fs_convert_inline_page -> f2fs_write_failed -> truncate_blocks -> truncate_inline_inode BUG_ON, since i_size is 4096. Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r--fs/f2fs/inline.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
index 153c5e7a0bef..d3e0599ffab7 100644
--- a/fs/f2fs/inline.c
+++ b/fs/f2fs/inline.c
@@ -54,13 +54,6 @@ bool truncate_inline_inode(struct page *ipage, u64 from)
{
void *addr;
- /*
- * we should never truncate inline data past max inline data size,
- * because we always convert inline inode to normal one before
- * truncating real data if new size is past max inline data size.
- */
- f2fs_bug_on(F2FS_P_SB(ipage), from > MAX_INLINE_DATA);
-
if (from >= MAX_INLINE_DATA)
return false;