]> git.karo-electronics.de Git - linux-beck.git/commit
rbd: make rbd_obj_notify_ack() synchronous
authorJosh Durgin <josh.durgin@inktank.com>
Fri, 30 Aug 2013 00:36:03 +0000 (17:36 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Mon, 9 Sep 2013 18:16:02 +0000 (11:16 -0700)
commit20e0af67ce88c657d0601977b9941a2256afbdaa
tree850fb98180ca9a41b600fe444b7d615146c5b1ed
parent9abc59908e0c5f983aaa91150da32d5b62cf60b7
rbd: make rbd_obj_notify_ack() synchronous

The only user of rbd_obj_notify_ack() is rbd_watch_cb(). It used
asynchronously with no tracking of when the notify ack completes, so
it may still be in progress when the osd_client is shut down.  This
results in a BUG() since the osd client assumes no requests are in
flight when it stops. Since all notifies are flushed before the
osd_client is stopped, waiting for the notify ack to complete before
returning from the watch callback ensures there are no notify acks in
flight during shutdown.

Rename rbd_obj_notify_ack() to rbd_obj_notify_ack_sync() to reflect
its new synchronous nature.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
drivers/block/rbd.c