Feature #4236
krbd: properly handle flush commands
0%
Description
REQ_FLUSH and REQ_FUA are intended to implement drive
cache flushes and barrier semantics. I don't know
precisely how those need to be interpreted by the
kernel rbd implementation, but we should explicitly
handle them.
Right now, blkdev_issue_flush() can generate a zero-length
command whose sole purpose is to insert such a barrier
to a device. The kernel rbd client ignores zero-length
commands, and this is possibly (probably?) not the right
thing to do.
History
#1 Updated by Alex Elder about 11 years ago
Note that http://tracker.ceph.com/issues/4237 describes
making the new request code ignore all zero-length commands.
While looking at this, consider whether there are other
zero-length commands we need to do something about, and
either document why they're ignored or create new issues
to suggest they get resolved.
#2 Updated by Alex Elder almost 11 years ago
- Status changed from New to Duplicate
Marking this duplicate of: http://tracker.ceph.com/issues/3889
I looked into the zero-length request stuff more generally
there, and explained exactly what needed to be done for
FUA and FLUSH.
Other request flags/types of interest:
- WRITE_SAME (supply one page and write data from
that page repeatedly over a specified range)
--> This might be interested but is only used
by code that zeroes disks, and isn't worth
the effort right now to implement for rbd.
- DISCARD
See http://tracker.ceph.com/issues/190
I didn't see anything else that seemed like we
should consider implementing it.