attempt_plug_merge —
try to merge with current
's plugged list
bool fsfuncattempt_plug_merge ( | struct request_queue * q, |
struct bio * bio, | |
unsigned int * request_count) ; |
q
request_queue new bio is being queued at
bio
new bio being queued
request_count
out parameter for number of traversed plugged requests
Determine whether bio
being queued on q
can be merged with a request
on current
's plugged list. Returns true
if merge was successful,
otherwise false
.
This function is called without q
->queue_lock; however, elevator is
accessed iff there already are requests on the plugged list which in
turn guarantees validity of the elevator.
Note that, on successful merge, elevator operation
elevator_bio_merged_fn
will be called without queue lock. Elevator
must be ready for this.