1. NAME

attempt_plug_merge - try to merge with currentAqs plugged list

2. SYNOPSIS

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

3. 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

4. DESCRIPTION

Determine whether bio being queued on q can be merged with a request on currentAqs plugged list. Returns true if merge was successful, otherwise false.

Plugging coalesces IOs from the same issuer for the same purpose without going through q->queue_lock. As such itAqs more of an issuing mechanism than scheduling, and the request, while may have elvpriv data, is not added on the elevator at this point. In addition, we donAqt have reliable access to the elevator outside queue lock. Only check basic merging parameters without querying the elevator.

5. COPYRIGHT