rbd_assert(start ^ !!rbd_dev->watch_request);
 
        if (start) {
-               ret = ceph_osdc_create_event(osdc, rbd_watch_cb, 0, rbd_dev,
+               ret = ceph_osdc_create_event(osdc, rbd_watch_cb, rbd_dev,
                                                &rbd_dev->watch_event);
                if (ret < 0)
                        return ret;
 
 /* watch/notify events */
 extern int ceph_osdc_create_event(struct ceph_osd_client *osdc,
                                  void (*event_cb)(u64, u64, u8, void *),
-                                 int one_shot, void *data,
-                                 struct ceph_osd_event **pevent);
+                                 void *data, struct ceph_osd_event **pevent);
 extern void ceph_osdc_cancel_event(struct ceph_osd_event *event);
 extern int ceph_osdc_wait_event(struct ceph_osd_event *event,
                                unsigned long timeout);
 
 
 int ceph_osdc_create_event(struct ceph_osd_client *osdc,
                           void (*event_cb)(u64, u64, u8, void *),
-                          int one_shot, void *data,
-                          struct ceph_osd_event **pevent)
+                          void *data, struct ceph_osd_event **pevent)
 {
        struct ceph_osd_event *event;
 
 
        dout("create_event %p\n", event);
        event->cb = event_cb;
-       event->one_shot = one_shot;
+       event->one_shot = 0;
        event->data = data;
        event->osdc = osdc;
        INIT_LIST_HEAD(&event->osd_node);
 /*
  * Process osd watch notifications
  */
-void handle_watch_notify(struct ceph_osd_client *osdc, struct ceph_msg *msg)
+static void handle_watch_notify(struct ceph_osd_client *osdc,
+                               struct ceph_msg *msg)
 {
        void *p, *end;
        u8 proto_ver;
        spin_lock(&osdc->event_lock);
        event = __find_event(osdc, cookie);
        if (event) {
+               BUG_ON(event->one_shot);
                get_event(event);
-               if (event->one_shot)
-                       __remove_event(event);
        }
        spin_unlock(&osdc->event_lock);
        dout("handle_watch_notify cookie %lld ver %lld event %p\n",