Re: [PATCH v2 3/3] rbd: make rbd_obj_notify_ack() synchronous

2013-09-03 Thread Alex Elder
On 08/29/2013 07:57 PM, Josh Durgin wrote: The only user is rbd_watch_cb(). If this is asynchronous, there is no The only user *of rbd_obj_notify_ack()* is rbd_watch_cb(). ... tracking of when it completes, so it may still be in progress when the I think what you're saying is that, because

Re: [PATCH v2 3/3] rbd: make rbd_obj_notify_ack() synchronous

2013-09-03 Thread Alex Elder
On 09/03/2013 08:05 AM, Alex Elder wrote: There's another problem though. This function used a clever trick of assigning rbd_obj_request_put() as the object request's callback function. This allowed the request to just be sent and cleaned up whenever it completed. Oh, sorry, I neglected to

[PATCH v2 3/3] rbd: make rbd_obj_notify_ack() synchronous

2013-08-29 Thread Josh Durgin
The only user is rbd_watch_cb(). If this is asynchronous, there is no tracking of when it 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 now,