On Thursday February 19, nathapl@cs.okstate.edu wrote:
I've gotten through most of handle_stripe, but I'm still confused on one
big thing: The reads and the writes are separated into two separate lists
as soon as they come into make_request. What guarantees they are done in
order? I can't see any mechanism that maintains any specific ordering of
the bion. Just that reads are done first, when possible, then
writes. What am I missing?
You aren't missing anything in the code - no ordering is enforced.
If a filesystem issues a 'write' request and then, before that
completes, issues a read request, the read could get either the before
or after values. But that is probably true of normal disk-drives
too. A filesystem simply shouldn't do that.
Does that clear up the question?
NeilBrown