Hi Douglas, Do you still plan on getting these changes upstream? I have one comment on this patch: On Wed, 17 Jun 2015 07:25:54 -0700, Douglas Fuller wrote: > +static void rbd_watch_error_cb(void *arg, u64 cookie, int err) > +{ > + struct rbd_device *rbd_dev = (struct rbd_device *)arg; > + int ret; > + > + dout("%s: watch error %d on cookie %llu\n", rbd_dev->header_name, > + err, cookie); > + rbd_warn(rbd_dev, "%s: watch error %d on cookie %llu\n", > + rbd_dev->header_name, err, cookie); > + > + /* reset watch */ > + rbd_dev_header_unwatch_sync(rbd_dev); > + ret = rbd_dev_header_watch_sync(rbd_dev); > + rbd_dev_refresh(rbd_dev); > + if (ret) > + rbd_warn(rbd_dev, "refresh failed: %d", ret); > +} The watch reset here could potentially race with the rbd_dev_header_unwatch_sync() performed on unmap. To handle this, notify_wq should be stopped prior to unwatch in do_rbd_remove(). Cheers, David -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html