On Tuesday 31 March 2015 09:36 PM, Raghavendra Talur wrote:
Hi, I have sent updated patch which adds xdata support to all syncop calls. It adds xdata in both request and response path of syncop. Considering that this patch has changes in many files, I request a quick review and merge to avoid rebase issues. Patch link http://review.gluster.org/#/c/9859/ Bug Id: https://bugzilla.redhat.com/show_bug.cgi?id=1158621 Thanks, Raghavendra Talur
Question regarding validity of xdata when op_ret < 0. In this patch set I have syncop_*_cbk in this form int syncop_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret, int op_errno, struct iatt *preparent, struct iatt *postparent, dict_t *xdata) { struct syncargs *args = NULL; args = cookie; args->op_ret = op_ret; args->op_errno = op_errno; if (op_ret >= 0) { if (xdata) args->xdata = dict_ref (xdata); } __wake (args); return 0; } where as the call stub has it like this call_stub_t * fop_rmdir_cbk_stub (call_frame_t *frame, fop_rmdir_cbk_t fn, int32_t op_ret, int32_t op_errno, struct iatt *preparent, struct iatt *postparent, dict_t *xdata) { call_stub_t *stub = NULL; GF_VALIDATE_OR_GOTO ("call-stub", frame, out); stub = stub_new (frame, 0, GF_FOP_RMDIR); GF_VALIDATE_OR_GOTO ("call-stub", stub, out); stub->fn_cbk.rmdir = fn; stub->args_cbk.op_ret = op_ret; stub->args_cbk.op_errno = op_errno; if (preparent) stub->args_cbk.preparent = *preparent; if (postparent) stub->args_cbk.postparent = *postparent; if (xdata) stub->args_cbk.xdata = dict_ref (xdata); out: return stub; } The difference being when xdata is considered to be valid. call-stub considers it valid irrespective of op_ret value. Is it always ok to consider xdata to be valid, even if op_ret < 0? If yes, I will have to update the syncop_*_cbk calls to ref xdata if they exist, irrespective of op_ret. Also, it can be used in really cool ways, like we can have a key called glusterfs.error_origin_xlator set to this->name of the xlator where error originated and master xlators (fuse and gfapi) can log / make use of it etc. Thanks, Raghavendra Talur _______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-devel