drbd: base completion and destruction of requests on ref counts
authorLars Ellenberg <lars.ellenberg@linbit.com>
Tue, 24 Jan 2012 16:19:42 +0000 (17:19 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 8 Nov 2012 15:58:36 +0000 (16:58 +0100)
commita0d856dfaed16efb9600b2a7d147cb6dbc11ff94
tree48b11d912c045a0bf7ff2eed3cfd1abe62c9e31f
parentb406777e6496de346e8ee12fa64e1fe0adc02a78
drbd: base completion and destruction of requests on ref counts

cherry-picked and adapted from drbd 9 devel branch

The logic for when to get or put a reference is in mod_rq_state().

To not get confused in the freeze/thaw respectively resend/restart
paths, or when cleaning up requests waiting for P_BARRIER_ACK, this
also introduces additional state flags:
RQ_COMPLETION_SUSP, and RQ_EXP_BARR_ACK.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_int.h
drivers/block/drbd/drbd_main.c
drivers/block/drbd/drbd_req.c
drivers/block/drbd/drbd_req.h