libceph: add function to ensure notifies are complete
authorJosh Durgin <josh.durgin@inktank.com>
Thu, 29 Aug 2013 04:43:09 +0000 (21:43 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2014 20:24:26 +0000 (12:24 -0800)
commita2e5951b11b406a83f84c1eb3b5d722491f4d883
treedf9395701dfa87884117589db8162a06d01d8653
parentdd932ee7a2453d86c920d3bbd2938602c5c9aaca
libceph: add function to ensure notifies are complete

commit dd935f44a40f8fb02aff2cc0df2269c92422df1c upstream.

Without a way to flush the osd client's notify workqueue, a watch
event that is unregistered could continue receiving callbacks
indefinitely.

Unregistering the event simply means no new notifies are added to the
queue, but there may still be events in the queue that will call the
watch callback for the event. If the queue is flushed after the event
is unregistered, the caller can be sure no more watch callbacks will
occur for the canceled watch.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/ceph/osd_client.h
net/ceph/osd_client.c