diff options
author | Heinz Mauelshagen <heinzm@redhat.com> | 2013-10-14 11:24:43 -0400 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2013-11-09 18:20:24 -0500 |
commit | ffcbcb6720ab6a4bb6e0a51b3711e8c60872d281 (patch) | |
tree | 68cad35eb1e891e819979babe5b00775ed186ba0 | |
parent | 40c57f475f416ab241124e1e6a593b2f982eaae3 (diff) |
dm cache: optimize commit_if_needed
Check commit_requested flag _before_ calling
dm_cache_changed_this_transaction() superfluously.
Also, be sure to set last_commit_jiffies _after_ dm_cache_commit()
completes.
Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
-rw-r--r-- | drivers/md/dm-cache-target.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c index 05a10c02043f..4b564069e08f 100644 --- a/drivers/md/dm-cache-target.c +++ b/drivers/md/dm-cache-target.c | |||
@@ -1234,15 +1234,17 @@ static int need_commit_due_to_time(struct cache *cache) | |||
1234 | 1234 | ||
1235 | static int commit_if_needed(struct cache *cache) | 1235 | static int commit_if_needed(struct cache *cache) |
1236 | { | 1236 | { |
1237 | if (dm_cache_changed_this_transaction(cache->cmd) && | 1237 | int r = 0; |
1238 | (cache->commit_requested || need_commit_due_to_time(cache))) { | 1238 | |
1239 | if ((cache->commit_requested || need_commit_due_to_time(cache)) && | ||
1240 | dm_cache_changed_this_transaction(cache->cmd)) { | ||
1239 | atomic_inc(&cache->stats.commit_count); | 1241 | atomic_inc(&cache->stats.commit_count); |
1240 | cache->last_commit_jiffies = jiffies; | ||
1241 | cache->commit_requested = false; | 1242 | cache->commit_requested = false; |
1242 | return dm_cache_commit(cache->cmd, false); | 1243 | r = dm_cache_commit(cache->cmd, false); |
1244 | cache->last_commit_jiffies = jiffies; | ||
1243 | } | 1245 | } |
1244 | 1246 | ||
1245 | return 0; | 1247 | return r; |
1246 | } | 1248 | } |
1247 | 1249 | ||
1248 | static void process_deferred_bios(struct cache *cache) | 1250 | static void process_deferred_bios(struct cache *cache) |