ello, Jens, James, Jeff and Bartlomiej.
This is the fifth posting of blk ordered reimplementation. The
last posting was on 19th, Oct.
The generic dispatch queue patchset which is required for this ordered
patchset has made it into the main tree.
Changes from the previous post are...
* As core blk files have moved from drivers/block/ to block/, patches
are updated accordingly.
* In 04_blk_scsi-update-ordered, sd_prepare_flush() is updated to
initialize rq->cmd_len properly. This used to work like this
previously but something broke it. Note that the original flush
code is broken too. James, can you please verify this?
* libata has gone through some changes since last posting. libata
updates are rewritten. Jeff, please review #07 and #08.
Other than above three, nothing has changed. Jens, after reviewing,
can we push these into -mm?
[ Start of patch descriptions ]
: add @uptodate to end_that_request_last() and @error to rq_end_io_fn()
Add @uptodate argument to end_that_request_last() and @error
to rq_end_io_fn(). There's no generic way to pass error code
to request completion function, making generic error handling
of non-fs request difficult (rq->errors is driver-specific and
each driver uses it differently). This patch adds @uptodate
to end_that_request_last() and @error to rq_end_io_fn().
For fs requests, this doesn't really matter, so just using the
same uptodate argument used in the last call to
end_that_request_first() should suffice. IMHO, this can also
help the generic command-carrying request Jens is working on.
: separate out bio init part from __make_request
Separate out bio initialization part from __make_request. It
will be used by the following blk_ordered_reimpl.
: reimplement handling of barrier request
Reimplement handling of barrier requests.
* Flexible handling to deal with various capabilities of
* Retry support for falling back.
* Tagged queues which don't support ordered tag can do ordered.
: update SCSI to use new blk_ordered
All ordered request related stuff delegated to HLD. Midlayer
now doens't deal with ordered setting or prepare_flush
callback. sd.c updated to deal with blk_queue_ordered
setting. Currently, ordered tag isn't used as SCSI midlayer
cannot guarantee request ordering.
: add FUA support to SCSI disk
Add FUA support to SCSI disk.
: update libata to use new blk_ordered
Reflect changes in SCSI midlayer and updated to use new
ordered request implementation
: add FUA support to libata
Add FUA support to libata.
: update IDE to use new blk_ordered
Update IDE to use new blk_ordered.
: add FUA support to IDE
Add FUA support to IDE
: I/O barrier documentation
I/O barrier do