----- Original Message ----- > From: "Mike Christie" <mchristi@xxxxxxxxxx> > To: "Douglas Fuller" <dfuller@xxxxxxxxxx>, ceph-devel@xxxxxxxxxxxxxxx > Sent: Tuesday, June 16, 2015 11:26:43 AM > Subject: Re: [PATCH 5/6] osd_client: add support for notify payloads via notify event > > On 06/12/2015 10:56 AM, Douglas Fuller wrote: > > @@ -2533,8 +2548,10 @@ static void handle_watch_notify(struct > > ceph_osd_client *osdc, > > if (msg->hdr.version >= 2) > > ceph_decode_32_safe(&p, end, return_code, bad); > > > > - if (msg->hdr.version >= 3) > > + if (msg->hdr.version >= 3) { > > ceph_decode_32_safe(&p, end, notifier_gid, bad); > > + data = list_first_entry(&msg->data, struct ceph_msg_data, links); > > It's not completely clear how/who can use this data. Would rbd be > calling ceph_osdc_create_notify_event/ceph_osdc_create_notify_event, or > is some libceph code (net/ceph)? rbd would be calling ceph_osdc_create_notify_event and then ceph_osdc_wait_event (which waits for CEPH_WATCH_EVENT_NOTIFY_COMPLETE). > If it's rbd, is it supposed to be digging into ceph_msg_data structs? > Did we want to pass it a pagelist or CEPH_OSD_DATA_TYPE_PAGES type of > pages array? Yeah, it would be cleaner to just copy the pages pointer and size. I'll change that. Either way, the decoding gets hairy and cumbersome. I think we should extend osd_client to have one or two convenience routines like ceph_osdc_for_each_notifier or something like that. -- 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