Name

attempt_plug_merge — try to merge with current's plugged list

Synopsis

bool fsfuncattempt_plug_merge (struct request_queue * q,
 struct bio * bio,
 unsigned int * request_count);
 

Arguments

q

request_queue new bio is being queued at

bio

new bio being queued

request_count

out parameter for number of traversed plugged requests

Description

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.