New disk write clustering algorithm.

Summary:
Now that we have per-block hashes, this commit adds a new (and
hopefully improved) dirty block clustering algorithm. The new
algorithm is disabled by default and can be enabled by
new_style_write_merge sysctl.

Test Plan:

Reviewers:

CC:

Task ID: #

Blame Rev:
An uncacheable READ should be served out of the cache when possible.

Summary:
Fix for another bug that got introduced during the mergeorama.
An uncacheable READ will end up evicting the cached block (cleaning
it first if necessary). This should not happen, we should always
try and serve the cached block on an uncacheable READ. But a READ
miss will go to disk.

This bug does not affect correctness, but it could adversely impact
cache hit rates.

Test Plan:

Reviewers:

CC:

Task ID: #

Blame Rev:
Update flashcache_reclaim.c

The function of flashcache_reclaim_demote_block() is to swap this hot block with the MRU block in the warm queue.

And the MRU block in the warm queue is related to warmlist_lru_tail,so

the code:
warm_block = cache_set->warmlist_lru_head; 

should be:
warm_block = cache_set->warmlist_lru_tail;
Fix for a bug where we "leak" cache blocks.

Summary:

Fix for a bug where we "leak" INVALID blocks. This happens if we
get uncacheable reads on a fresh cache. The symptom of this is that
after a few days of running (and load), the cache will always be < 100%
utilized. Thanks to Domas Mituzas for finding the bug and Kumar Sundararajan
for his help in fixing this.

Test Plan:

Reviewers:

CC:

Task ID: #

Blame Rev:
Merge pull request #136 from hshopeful/patch-1

Update flashcache_reclaim.c
Add dracut-flashcache-0.3, initial commit
Merge pull request #145 from jb044/master

Add dracut-flashcache-0.3, initial commit
Up flashcache SW rev to 3.1.1

Summary: Up flashcache SW rev to 3.1.1

Test Plan:

Reviewers:

CC:

Task ID: #

Blame Rev:
Revert previous change.

Summary: Revert previous change. Some code that I did not intend
to commit got committed accidentally.

Test Plan:

Reviewers:

CC:

Task ID: #

Blame Rev:
Bump flashcache sw rev to 3.1.1.

Summary: Bump flashcache sw rev to 3.1.1.

Test Plan:

Reviewers:

CC:

Task ID: #

Blame Rev:
fix compile error on RHEL 6.5
Merge pull request #155 from pubyun/master

fix compile error on RHEL 6.5