[dm-cache] remove basic and debug policies.  I'm going to put them in
a separate, less stable, branch.
dm cache: use sector_div rather than do_div in oblock_to_dblock
dm cache: sectors_per_block doesn't need to be 64 bits

mikulas: dm doesn't allow larger values than unsigned anyway.
dm cache: rename tmp to discard_blocks in oblock_to_dblock
dm cache: optimize sectors_per_block division in oblock_to_dblock
dm cache: fix whitespace damage I recently introduced
[dm-cache] remove some dead struct fields from mq policy
Merge branch 'remove-basic-policy' into thin-dev
dm cache policy mq: add missing initialization in iot_init
Merge branch 'thin-dev-next' of https://github.com/snitm/linux into thin-dev-next
[dm-cache] correct function comment in dm-cache-policy.h
[dm-cache] simplify writethrough implementation.

When the cache is in writethrough mode it needs to send WRITE bios to
both the origin and cache devices.

Previously we've been implementing this by having dm core query the
cache target on every write to find out how many copies of the bio it
wants.  The cache will ask for two bios if the block is in the cache,
and one otherwise.

Then main problem with this is it's racey.  At the time this check is
made the bio hasn't yet been submitted and so isn't being taken into
account when quiescing a block for migration (promotion or demotion).
This means a single bio may be submitted when two were needed because
the block has since been promoted to the cache (catastrophic), or two
bios where only one is needed (harmless).

I really don't want to start entering bios into the quiescing system
(deferred_set) in the get_num_write_bios callback.  Instead this patch
simplifies things; only one bio is submitted by the core, this is
first written to the origin and then the cache device in series.
Obviously this will have a latency impact.