summaryrefslogtreecommitdiff
path: root/fs/ext4
diff options
context:
space:
mode:
authorLukas Czerner <lczerner@redhat.com>2013-10-30 11:10:52 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-01-09 12:24:21 -0800
commit8164ddf1f6f9fca6020143a259a9f9667d53c1e4 (patch)
tree2b5f0e4c8100d238a8f1caec23898295d7930a92 /fs/ext4
parentcd7442730bdf3c8ecdd9a0ae8d77750b359fe60e (diff)
downloadlinux-3.10-8164ddf1f6f9fca6020143a259a9f9667d53c1e4.tar.gz
linux-3.10-8164ddf1f6f9fca6020143a259a9f9667d53c1e4.tar.bz2
linux-3.10-8164ddf1f6f9fca6020143a259a9f9667d53c1e4.zip
ext4: fix FITRIM in no journal mode
commit 8f9ff189205a6817aee5a1f996f876541f86e07c upstream. When using FITRIM ioctl on a file system without journal it will only trim the block group once, no matter how many times you invoke FITRIM ioctl and how many block you release from the block group. It is because we only clear EXT4_GROUP_INFO_WAS_TRIMMED_BIT in journal callback. Fix this by clearing the bit in no journal mode as well. Signed-off-by: Lukas Czerner <lczerner@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Reported-by: Jorge Fábregas <jorge.fabregas@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/mballoc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 4c0e3e023fc..fba960ee26d 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -4771,8 +4771,8 @@ do_more:
" group:%d block:%d count:%lu failed"
" with %d", block_group, bit, count,
err);
- }
-
+ } else
+ EXT4_MB_GRP_CLEAR_TRIMMED(e4b.bd_info);
ext4_lock_group(sb, block_group);
mb_clear_bits(bitmap_bh->b_data, bit, count_clusters);