···4444 nocase:1, /* Does this need case conversion? 0=need case conversion*/4545 usefree:1, /* Use free_clusters for FAT32 */4646 tz_utc:1, /* Filesystem timestamps are in UTC */4747- rodir:1; /* allow ATTR_RO for directory */4747+ rodir:1, /* allow ATTR_RO for directory */4848+ discard:1; /* Issue discard requests on deletions */4849};49505051#define FAT_HASH_BITS 8
+14-9
fs/fat/fatent.c
···566566 goto error;567567 }568568569569- /* 570570- * Issue discard for the sectors we no longer care about,571571- * batching contiguous clusters into one request572572- */573573- if (cluster != fatent.entry + 1) {574574- int nr_clus = fatent.entry - first_cl + 1;569569+ if (sbi->options.discard) {570570+ /*571571+ * Issue discard for the sectors we no longer572572+ * care about, batching contiguous clusters573573+ * into one request574574+ */575575+ if (cluster != fatent.entry + 1) {576576+ int nr_clus = fatent.entry - first_cl + 1;575577576576- sb_issue_discard(sb, fat_clus_to_blknr(sbi, first_cl),577577- nr_clus * sbi->sec_per_clus);578578- first_cl = cluster;578578+ sb_issue_discard(sb,579579+ fat_clus_to_blknr(sbi, first_cl),580580+ nr_clus * sbi->sec_per_clus);581581+582582+ first_cl = cluster;583583+ }579584 }580585581586 ops->ent_put(&fatent, FAT_ENT_FREE);