ext4: stop issuing discards if not supported by device
PATCH 1/1 ext4: stop issuing discards if not supported by device
Turn off issuance of discard requests if the device does not support it - similar to the action we take for barriers. This will save a little computation time if a non-discardable device is mounted with -o discard, and also makes it obvious that it's not doing what was asked at mount time ...
Signed-off-by Eric Sandeen <[email protected]>
---
fs/ext4/mballoc.c +7 -1
@@ -2556,6 +2556,7 @@ static void release_blocks_on_commit(journal_t *journal, transaction_t *txn) }ext4_unlock_group (sb, entry->group);if (test_opt (sb,DISCARD )) { +int ret;ext4_fsblk_t discard_block; discard_block = entry->start_blk +
@@ -2563,7 +2564,12 @@ static void release_blocks_on_commit(journal_t *journal, transaction_t *txn)trace_ext4_discard_blocks (sb, (unsigned long long )discard_block, entry->count); -sb_issue_discard (sb, discard_block, entry->count); + ret =sb_issue_discard (sb, discard_block, entry->count); +if (ret ==EOPNOTSUPP ) { +ext4_warning (sb, +"discard not supported, disabling" ); +clear_opt (EXT4_SB (sb)->s_mount_opt,DISCARD ); + } }kmem_cache_free (ext4_free_ext_cachep, entry);ext4_mb_release_desc (&e4b);
[email protected]
maintainerQuoted 7 lines · Eric Sandeen
Turn off issuance of discard requests if the device does not support it - similar to the action we take for barriers. This will save a little computation time if a non-discardable device is mounted with -o discard, and also makes it obvious that it's not doing what was asked at mount time ...
Signed-off-by Eric Sandeen <[email protected]>
Added to the ext4 patch queue, thanks.
- Ted