summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJosh Durgin <josh.durgin@inktank.com>2013-08-29 06:43:09 +0200
committerJosh Durgin <josh.durgin@inktank.com>2013-09-09 20:15:49 +0200
commitdd935f44a40f8fb02aff2cc0df2269c92422df1c (patch)
treec5353ebc8cdf9d6aacb1c0f386f957540c019d66 /include
parentceph: use d_invalidate() to invalidate aliases (diff)
downloadlinux-dd935f44a40f8fb02aff2cc0df2269c92422df1c.tar.xz
linux-dd935f44a40f8fb02aff2cc0df2269c92422df1c.zip
libceph: add function to ensure notifies are complete
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>
Diffstat (limited to 'include')
-rw-r--r--include/linux/ceph/osd_client.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/ceph/osd_client.h b/include/linux/ceph/osd_client.h
index ce6df39f60ff..8f47625a0661 100644
--- a/include/linux/ceph/osd_client.h
+++ b/include/linux/ceph/osd_client.h
@@ -335,6 +335,8 @@ extern int ceph_osdc_wait_request(struct ceph_osd_client *osdc,
struct ceph_osd_request *req);
extern void ceph_osdc_sync(struct ceph_osd_client *osdc);
+extern void ceph_osdc_flush_notifies(struct ceph_osd_client *osdc);
+
extern int ceph_osdc_readpages(struct ceph_osd_client *osdc,
struct ceph_vino vino,
struct ceph_file_layout *layout,