From 8d6c376c550ad66b2716bd8e056efb83e85fd18f Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 16 Oct 2008 10:06:27 -0400 Subject: [PATCH] --- yaml --- r: 115581 b: refs/heads/master c: 8a0aba733db1adb5e1f0e828889a18f4c1c512de h: refs/heads/master i: 115579: 4f99568b8a6731a825d2997e9413866d02ad944a v: v3 --- [refs] | 2 +- trunk/fs/ext4/mballoc.c | 7 +++++++ trunk/fs/ext4/mballoc.h | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a6b1bfddd349..a6bfc1c226d5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a1aebc1e2da9a7bee4ff8cce510b08f469d1929e +refs/heads/master: 8a0aba733db1adb5e1f0e828889a18f4c1c512de diff --git a/trunk/fs/ext4/mballoc.c b/trunk/fs/ext4/mballoc.c index bd9b011941a2..815a22ea6078 100644 --- a/trunk/fs/ext4/mballoc.c +++ b/trunk/fs/ext4/mballoc.c @@ -2653,6 +2653,7 @@ ext4_mb_free_committed_blocks(struct super_block *sb) struct ext4_sb_info *sbi = EXT4_SB(sb); int err, count = 0, count2 = 0; struct ext4_free_data *entry; + ext4_fsblk_t discard_block; if (list_empty(&sbi->s_committed_transaction)) return; @@ -2696,6 +2697,12 @@ ext4_mb_free_committed_blocks(struct super_block *sb) page_cache_release(e4b.bd_bitmap_page); } ext4_unlock_group(sb, entry->group); + discard_block = (ext4_fsblk_t) entry->group * EXT4_BLOCKS_PER_GROUP(sb) + + entry->start_blk + + le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block); + trace_mark(ext4_discard_blocks, "dev %s blk %llu count %u", sb->s_id, + (unsigned long long) discard_block, entry->count); + sb_issue_discard(sb, discard_block, entry->count); kmem_cache_free(ext4_free_ext_cachep, entry); ext4_mb_release_desc(&e4b); diff --git a/trunk/fs/ext4/mballoc.h b/trunk/fs/ext4/mballoc.h index 9e815c4e37df..94cb7b9fe3ee 100644 --- a/trunk/fs/ext4/mballoc.h +++ b/trunk/fs/ext4/mballoc.h @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include "ext4_jbd2.h" #include "ext4.h" #include "group.h"