Feature #4236
closedkrbd: 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.
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.
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.