Skip to content

Commit 18915b5

Browse files
djwongtytso
authored andcommitted
ext4: prohibit fstrim in norecovery mode
The ext4 fstrim implementation uses the block bitmaps to find free space that can be discarded. If we haven't replayed the journal, the bitmaps will be stale and we absolutely *cannot* use stale metadata to zap the underlying storage. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
1 parent 5e86bdd commit 18915b5

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

fs/ext4/ioctl.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,13 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
10001000
if (!blk_queue_discard(q))
10011001
return -EOPNOTSUPP;
10021002

1003+
/*
1004+
* We haven't replayed the journal, so we cannot use our
1005+
* block-bitmap-guided storage zapping commands.
1006+
*/
1007+
if (test_opt(sb, NOLOAD) && ext4_has_feature_journal(sb))
1008+
return -EROFS;
1009+
10031010
if (copy_from_user(&range, (struct fstrim_range __user *)arg,
10041011
sizeof(range)))
10051012
return -EFAULT;

0 commit comments

Comments
 (0)