NVMe: Flush with data support
authorKeith Busch <keith.busch@intel.com>
Tue, 29 Apr 2014 17:41:29 +0000 (11:41 -0600)
committerJens Axboe <axboe@fb.com>
Thu, 29 May 2014 15:54:27 +0000 (09:54 -0600)
commit6b2723db5bf6a4409e91e89ddcc38dfbc1871494
tree98166cb9dcfd40b1e01ba112036449f46a2da271
parent0a1945828ae1848cd3f92bb878b6dbbfec865fa2
NVMe: Flush with data support

It is possible a filesystem may send a flush flagged bio with write
data. There is no such composite NVMe command, so the driver sends flush
and write separately.

The device is allowed to execute these commands in any order, so it was
possible the driver ends the bio after the write completes, but while the
flush is still active. We don't want to let a filesystem believe flush
succeeded before it really has; this could cause data corruption on a
power loss between these events. To fix, this patch splits the flush
and write into chained bios.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
drivers/block/nvme-core.c
include/linux/nvme.h