diff options
author | Amar Tumballi <amarts@redhat.com> | 2012-03-20 17:22:24 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2012-03-22 16:40:27 -0700 |
commit | 9d3af972f516b6ba38d2736ce2016e34a452d569 (patch) | |
tree | 1dcdc620748a42cdfb5464c3adaae5a4a3a6f869 /libglusterfs/src | |
parent | afe542eca18888463798747d2a95e5a9d239a4a0 (diff) |
core: adding extra data for fops
with this change, the xlator APIs will have a dictionary as extra
argument, which is passed between all the layers. This can be
utilized for overloading in some of the operations.
Change-Id: I58a8186b3ef647650280e63f3e5e9b9de7827b40
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 782265
Reviewed-on: http://review.gluster.com/2960
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'libglusterfs/src')
-rw-r--r-- | libglusterfs/src/call-stub.c | 720 | ||||
-rw-r--r-- | libglusterfs/src/call-stub.h | 187 | ||||
-rw-r--r-- | libglusterfs/src/defaults.c | 563 | ||||
-rw-r--r-- | libglusterfs/src/defaults.h | 320 | ||||
-rw-r--r-- | libglusterfs/src/syncop.c | 122 | ||||
-rw-r--r-- | libglusterfs/src/syncop.h | 1 | ||||
-rw-r--r-- | libglusterfs/src/xlator.h | 177 |
7 files changed, 1178 insertions, 912 deletions
diff --git a/libglusterfs/src/call-stub.c b/libglusterfs/src/call-stub.c index 9b3a9c348..01e919d69 100644 --- a/libglusterfs/src/call-stub.c +++ b/libglusterfs/src/call-stub.c @@ -55,7 +55,7 @@ call_stub_t * fop_lookup_stub (call_frame_t *frame, fop_lookup_t fn, loc_t *loc, - dict_t *xattr_req) + dict_t *xdata) { call_stub_t *stub = NULL; @@ -67,10 +67,10 @@ fop_lookup_stub (call_frame_t *frame, stub->args.lookup.fn = fn; - if (xattr_req) - stub->args.lookup.xattr_req = dict_ref (xattr_req); - loc_copy (&stub->args.lookup.loc, loc); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -83,7 +83,7 @@ fop_lookup_cbk_stub (call_frame_t *frame, int32_t op_errno, inode_t *inode, struct iatt *buf, - dict_t *dict, + dict_t *xdata, struct iatt *postparent) { call_stub_t *stub = NULL; @@ -100,10 +100,11 @@ fop_lookup_cbk_stub (call_frame_t *frame, stub->args.lookup_cbk.inode = inode_ref (inode); if (buf) stub->args.lookup_cbk.buf = *buf; - if (dict) - stub->args.lookup_cbk.dict = dict_ref (dict); if (postparent) stub->args.lookup_cbk.postparent = *postparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -113,7 +114,7 @@ out: call_stub_t * fop_stat_stub (call_frame_t *frame, fop_stat_t fn, - loc_t *loc) + loc_t *loc, dict_t *xdata) { call_stub_t *stub = NULL; @@ -125,6 +126,9 @@ fop_stat_stub (call_frame_t *frame, stub->args.stat.fn = fn; loc_copy (&stub->args.stat.loc, loc); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -135,7 +139,7 @@ fop_stat_cbk_stub (call_frame_t *frame, fop_stat_cbk_t fn, int32_t op_ret, int32_t op_errno, - struct iatt *buf) + struct iatt *buf, dict_t *xdata) { call_stub_t *stub = NULL; @@ -149,6 +153,9 @@ fop_stat_cbk_stub (call_frame_t *frame, stub->args.stat_cbk.op_errno = op_errno; if (op_ret == 0) stub->args.stat_cbk.buf = *buf; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -157,7 +164,7 @@ out: call_stub_t * fop_fstat_stub (call_frame_t *frame, fop_fstat_t fn, - fd_t *fd) + fd_t *fd, dict_t *xdata) { call_stub_t *stub = NULL; @@ -170,6 +177,9 @@ fop_fstat_stub (call_frame_t *frame, if (fd) stub->args.fstat.fd = fd_ref (fd); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -180,7 +190,7 @@ fop_fstat_cbk_stub (call_frame_t *frame, fop_fstat_cbk_t fn, int32_t op_ret, int32_t op_errno, - struct iatt *buf) + struct iatt *buf, dict_t *xdata) { call_stub_t *stub = NULL; @@ -194,6 +204,9 @@ fop_fstat_cbk_stub (call_frame_t *frame, stub->args.fstat_cbk.op_errno = op_errno; if (buf) stub->args.fstat_cbk.buf = *buf; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -205,7 +218,7 @@ call_stub_t * fop_truncate_stub (call_frame_t *frame, fop_truncate_t fn, loc_t *loc, - off_t off) + off_t off, dict_t *xdata) { call_stub_t *stub = NULL; @@ -218,6 +231,9 @@ fop_truncate_stub (call_frame_t *frame, stub->args.truncate.fn = fn; loc_copy (&stub->args.truncate.loc, loc); stub->args.truncate.off = off; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -229,7 +245,7 @@ fop_truncate_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, dict_t *xdata) { call_stub_t *stub = NULL; @@ -245,6 +261,9 @@ fop_truncate_cbk_stub (call_frame_t *frame, stub->args.truncate_cbk.prebuf = *prebuf; if (postbuf) stub->args.truncate_cbk.postbuf = *postbuf; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -254,7 +273,7 @@ call_stub_t * fop_ftruncate_stub (call_frame_t *frame, fop_ftruncate_t fn, fd_t *fd, - off_t off) + off_t off, dict_t *xdata) { call_stub_t *stub = NULL; @@ -268,6 +287,9 @@ fop_ftruncate_stub (call_frame_t *frame, stub->args.ftruncate.fd = fd_ref (fd); stub->args.ftruncate.off = off; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -279,7 +301,7 @@ fop_ftruncate_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, dict_t *xdata) { call_stub_t *stub = NULL; @@ -295,6 +317,9 @@ fop_ftruncate_cbk_stub (call_frame_t *frame, stub->args.ftruncate_cbk.prebuf = *prebuf; if (postbuf) stub->args.ftruncate_cbk.postbuf = *postbuf; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -304,7 +329,7 @@ call_stub_t * fop_access_stub (call_frame_t *frame, fop_access_t fn, loc_t *loc, - int32_t mask) + int32_t mask, dict_t *xdata) { call_stub_t *stub = NULL; @@ -317,6 +342,9 @@ fop_access_stub (call_frame_t *frame, stub->args.access.fn = fn; loc_copy (&stub->args.access.loc, loc); stub->args.access.mask = mask; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -326,7 +354,7 @@ call_stub_t * fop_access_cbk_stub (call_frame_t *frame, fop_access_cbk_t fn, int32_t op_ret, - int32_t op_errno) + int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -338,6 +366,9 @@ fop_access_cbk_stub (call_frame_t *frame, stub->args.access_cbk.fn = fn; stub->args.access_cbk.op_ret = op_ret; stub->args.access_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -347,7 +378,7 @@ call_stub_t * fop_readlink_stub (call_frame_t *frame, fop_readlink_t fn, loc_t *loc, - size_t size) + size_t size, dict_t *xdata) { call_stub_t *stub = NULL; @@ -360,6 +391,9 @@ fop_readlink_stub (call_frame_t *frame, stub->args.readlink.fn = fn; loc_copy (&stub->args.readlink.loc, loc); stub->args.readlink.size = size; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -371,7 +405,7 @@ fop_readlink_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, const char *path, - struct iatt *sbuf) + struct iatt *sbuf, dict_t *xdata) { call_stub_t *stub = NULL; @@ -387,14 +421,17 @@ fop_readlink_cbk_stub (call_frame_t *frame, stub->args.readlink_cbk.buf = gf_strdup (path); if (sbuf) stub->args.readlink_cbk.sbuf = *sbuf; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } call_stub_t * -fop_mknod_stub (call_frame_t *frame, fop_mknod_t fn, - loc_t *loc, mode_t mode, dev_t rdev, dict_t *params) +fop_mknod_stub (call_frame_t *frame, fop_mknod_t fn, loc_t *loc, mode_t mode, + dev_t rdev, mode_t umask, dict_t *xdata) { call_stub_t *stub = NULL; @@ -408,8 +445,10 @@ fop_mknod_stub (call_frame_t *frame, fop_mknod_t fn, loc_copy (&stub->args.mknod.loc, loc); stub->args.mknod.mode = mode; stub->args.mknod.rdev = rdev; - if (params) - stub->args.mknod.params = dict_ref (params); + stub->args.mknod.umask = umask; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -423,7 +462,7 @@ fop_mknod_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { call_stub_t *stub = NULL; @@ -443,6 +482,9 @@ fop_mknod_cbk_stub (call_frame_t *frame, stub->args.mknod_cbk.preparent = *preparent; if (postparent) stub->args.mknod_cbk.postparent = *postparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -450,7 +492,7 @@ out: call_stub_t * fop_mkdir_stub (call_frame_t *frame, fop_mkdir_t fn, - loc_t *loc, mode_t mode, dict_t *params) + loc_t *loc, mode_t mode, mode_t umask, dict_t *xdata) { call_stub_t *stub = NULL; @@ -462,9 +504,12 @@ fop_mkdir_stub (call_frame_t *frame, fop_mkdir_t fn, stub->args.mkdir.fn = fn; loc_copy (&stub->args.mkdir.loc, loc); - stub->args.mkdir.mode = mode; - if (params) - stub->args.mkdir.params = dict_ref (params); + stub->args.mkdir.mode = mode; + stub->args.mkdir.umask = umask; + + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -478,7 +523,7 @@ fop_mkdir_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { call_stub_t *stub = NULL; @@ -498,6 +543,9 @@ fop_mkdir_cbk_stub (call_frame_t *frame, stub->args.mkdir_cbk.preparent = *preparent; if (postparent) stub->args.mkdir_cbk.postparent = *postparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -506,7 +554,7 @@ out: call_stub_t * fop_unlink_stub (call_frame_t *frame, fop_unlink_t fn, - loc_t *loc) + loc_t *loc, int xflag, dict_t *xdata) { call_stub_t *stub = NULL; @@ -518,6 +566,10 @@ fop_unlink_stub (call_frame_t *frame, stub->args.unlink.fn = fn; loc_copy (&stub->args.unlink.loc, loc); + stub->args.unlink.xflag = xflag; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -529,7 +581,7 @@ fop_unlink_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { call_stub_t *stub = NULL; @@ -545,6 +597,9 @@ fop_unlink_cbk_stub (call_frame_t *frame, stub->args.unlink_cbk.preparent = *preparent; if (postparent) stub->args.unlink_cbk.postparent = *postparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -553,7 +608,7 @@ out: call_stub_t * fop_rmdir_stub (call_frame_t *frame, fop_rmdir_t fn, - loc_t *loc, int flags) + loc_t *loc, int flags, dict_t *xdata) { call_stub_t *stub = NULL; @@ -566,6 +621,9 @@ fop_rmdir_stub (call_frame_t *frame, fop_rmdir_t fn, stub->args.rmdir.fn = fn; loc_copy (&stub->args.rmdir.loc, loc); stub->args.rmdir.flags = flags; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -577,7 +635,7 @@ fop_rmdir_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { call_stub_t *stub = NULL; @@ -593,6 +651,9 @@ fop_rmdir_cbk_stub (call_frame_t *frame, stub->args.rmdir_cbk.preparent = *preparent; if (postparent) stub->args.rmdir_cbk.postparent = *postparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -600,7 +661,7 @@ out: call_stub_t * fop_symlink_stub (call_frame_t *frame, fop_symlink_t fn, - const char *linkname, loc_t *loc, dict_t *params) + const char *linkname, loc_t *loc, mode_t umask, dict_t *xdata) { call_stub_t *stub = NULL; @@ -613,9 +674,11 @@ fop_symlink_stub (call_frame_t *frame, fop_symlink_t fn, stub->args.symlink.fn = fn; stub->args.symlink.linkname = gf_strdup (linkname); + stub->args.symlink.umask = umask; loc_copy (&stub->args.symlink.loc, loc); - if (params) - stub->args.symlink.params = dict_ref (params); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -629,7 +692,7 @@ fop_symlink_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { call_stub_t *stub = NULL; @@ -649,6 +712,9 @@ fop_symlink_cbk_stub (call_frame_t *frame, stub->args.symlink_cbk.preparent = *preparent; if (postparent) stub->args.symlink_cbk.postparent = *postparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -658,7 +724,7 @@ call_stub_t * fop_rename_stub (call_frame_t *frame, fop_rename_t fn, loc_t *oldloc, - loc_t *newloc) + loc_t *newloc, dict_t *xdata) { call_stub_t *stub = NULL; @@ -672,6 +738,9 @@ fop_rename_stub (call_frame_t *frame, stub->args.rename.fn = fn; loc_copy (&stub->args.rename.old, oldloc); loc_copy (&stub->args.rename.new, newloc); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -686,7 +755,7 @@ fop_rename_cbk_stub (call_frame_t *frame, struct iatt *preoldparent, struct iatt *postoldparent, struct iatt *prenewparent, - struct iatt *postnewparent) + struct iatt *postnewparent, dict_t *xdata) { call_stub_t *stub = NULL; @@ -708,6 +777,9 @@ fop_rename_cbk_stub (call_frame_t *frame, stub->args.rename_cbk.prenewparent = *prenewparent; if (postnewparent) stub->args.rename_cbk.postnewparent = *postnewparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -717,7 +789,7 @@ call_stub_t * fop_link_stub (call_frame_t *frame, fop_link_t fn, loc_t *oldloc, - loc_t *newloc) + loc_t *newloc, dict_t *xdata) { call_stub_t *stub = NULL; @@ -732,6 +804,9 @@ fop_link_stub (call_frame_t *frame, loc_copy (&stub->args.link.oldloc, oldloc); loc_copy (&stub->args.link.newloc, newloc); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -745,7 +820,7 @@ fop_link_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { call_stub_t *stub = NULL; @@ -765,6 +840,9 @@ fop_link_cbk_stub (call_frame_t *frame, stub->args.link_cbk.preparent = *preparent; if (postparent) stub->args.link_cbk.postparent = *postparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -773,7 +851,7 @@ out: call_stub_t * fop_create_stub (call_frame_t *frame, fop_create_t fn, loc_t *loc, int32_t flags, mode_t mode, - fd_t *fd, dict_t *params) + mode_t umask, fd_t *fd, dict_t *xdata) { call_stub_t *stub = NULL; @@ -787,10 +865,12 @@ fop_create_stub (call_frame_t *frame, fop_create_t fn, loc_copy (&stub->args.create.loc, loc); stub->args.create.flags = flags; stub->args.create.mode = mode; + stub->args.create.umask = umask; if (fd) stub->args.create.fd = fd_ref (fd); - if (params) - stub->args.create.params = dict_ref (params); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -805,7 +885,7 @@ fop_create_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { call_stub_t *stub = NULL; @@ -827,6 +907,9 @@ fop_create_cbk_stub (call_frame_t *frame, stub->args.create_cbk.preparent = *preparent; if (postparent) stub->args.create_cbk.postparent = *postparent; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -837,7 +920,7 @@ fop_open_stub (call_frame_t *frame, fop_open_t fn, loc_t *loc, int32_t flags, fd_t *fd, - int32_t wbflags) + dict_t *xdata) { call_stub_t *stub = NULL; @@ -850,9 +933,11 @@ fop_open_stub (call_frame_t *frame, stub->args.open.fn = fn; loc_copy (&stub->args.open.loc, loc); stub->args.open.flags = flags; - stub->args.open.wbflags = wbflags; if (fd) stub->args.open.fd = fd_ref (fd); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -863,8 +948,7 @@ fop_open_cbk_stub (call_frame_t *frame, fop_open_cbk_t fn, int32_t op_ret, int32_t op_errno, - fd_t *fd) - + fd_t *fd, dict_t *xdata) { call_stub_t *stub = NULL; @@ -878,6 +962,9 @@ fop_open_cbk_stub (call_frame_t *frame, stub->args.open_cbk.op_errno = op_errno; if (fd) stub->args.open_cbk.fd = fd_ref (fd); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -888,7 +975,7 @@ fop_readv_stub (call_frame_t *frame, fop_readv_t fn, fd_t *fd, size_t size, - off_t off, uint32_t flags) + off_t off, uint32_t flags, dict_t *xdata) { call_stub_t *stub = NULL; @@ -904,6 +991,9 @@ fop_readv_stub (call_frame_t *frame, stub->args.readv.off = off; stub->args.readv.flags = flags; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -917,8 +1007,7 @@ fop_readv_cbk_stub (call_frame_t *frame, struct iovec *vector, int32_t count, struct iatt *stbuf, - struct iobref *iobref) - + struct iobref *iobref, dict_t *xdata) { call_stub_t *stub = NULL; @@ -936,6 +1025,9 @@ fop_readv_cbk_stub (call_frame_t *frame, stub->args.readv_cbk.stbuf = *stbuf; stub->args.readv_cbk.iobref = iobref_ref (iobref); } + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -948,7 +1040,7 @@ fop_writev_stub (call_frame_t *frame, struct iovec *vector, int32_t count, off_t off, uint32_t flags, - struct iobref *iobref) + struct iobref *iobref, dict_t *xdata) { call_stub_t *stub = NULL; @@ -966,6 +1058,8 @@ fop_writev_stub (call_frame_t *frame, stub->args.writev.off = off; stub->args.writev.flags = flags; stub->args.writev.iobref = iobref_ref (iobref); + if (xdata) + stub->xdata = dict_ref (xdata); out: return stub; @@ -978,8 +1072,7 @@ fop_writev_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf) - + struct iatt *postbuf, dict_t *xdata) { call_stub_t *stub = NULL; @@ -995,6 +1088,9 @@ fop_writev_cbk_stub (call_frame_t *frame, stub->args.writev_cbk.postbuf = *postbuf; if (prebuf) stub->args.writev_cbk.prebuf = *prebuf; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1004,7 +1100,7 @@ out: call_stub_t * fop_flush_stub (call_frame_t *frame, fop_flush_t fn, - fd_t *fd) + fd_t *fd, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1016,6 +1112,9 @@ fop_flush_stub (call_frame_t *frame, stub->args.flush.fn = fn; if (fd) stub->args.flush.fd = fd_ref (fd); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1025,8 +1124,7 @@ call_stub_t * fop_flush_cbk_stub (call_frame_t *frame, fop_flush_cbk_t fn, int32_t op_ret, - int32_t op_errno) - + int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1038,6 +1136,9 @@ fop_flush_cbk_stub (call_frame_t *frame, stub->args.flush_cbk.fn = fn; stub->args.flush_cbk.op_ret = op_ret; stub->args.flush_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1049,7 +1150,7 @@ call_stub_t * fop_fsync_stub (call_frame_t *frame, fop_fsync_t fn, fd_t *fd, - int32_t datasync) + int32_t datasync, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1062,6 +1163,9 @@ fop_fsync_stub (call_frame_t *frame, if (fd) stub->args.fsync.fd = fd_ref (fd); stub->args.fsync.datasync = datasync; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1073,7 +1177,7 @@ fop_fsync_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1089,6 +1193,9 @@ fop_fsync_cbk_stub (call_frame_t *frame, stub->args.fsync_cbk.prebuf = *prebuf; if (postbuf) stub->args.fsync_cbk.postbuf = *postbuf; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1097,7 +1204,7 @@ out: call_stub_t * fop_opendir_stub (call_frame_t *frame, fop_opendir_t fn, - loc_t *loc, fd_t *fd) + loc_t *loc, fd_t *fd, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1111,6 +1218,9 @@ fop_opendir_stub (call_frame_t *frame, loc_copy (&stub->args.opendir.loc, loc); if (fd) stub->args.opendir.fd = fd_ref (fd); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1121,8 +1231,7 @@ fop_opendir_cbk_stub (call_frame_t *frame, fop_opendir_cbk_t fn, int32_t op_ret, int32_t op_errno, - fd_t *fd) - + fd_t *fd, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1137,6 +1246,9 @@ fop_opendir_cbk_stub (call_frame_t *frame, if (fd) stub->args.opendir_cbk.fd = fd_ref (fd); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1146,7 +1258,7 @@ call_stub_t * fop_fsyncdir_stub (call_frame_t *frame, fop_fsyncdir_t fn, fd_t *fd, - int32_t datasync) + int32_t datasync, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1159,6 +1271,9 @@ fop_fsyncdir_stub (call_frame_t *frame, if (fd) stub->args.fsyncdir.fd = fd_ref (fd); stub->args.fsyncdir.datasync = datasync; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1168,8 +1283,7 @@ call_stub_t * fop_fsyncdir_cbk_stub (call_frame_t *frame, fop_fsyncdir_cbk_t fn, int32_t op_ret, - int32_t op_errno) - + int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1181,6 +1295,9 @@ fop_fsyncdir_cbk_stub (call_frame_t *frame, stub->args.fsyncdir_cbk.fn = fn; stub->args.fsyncdir_cbk.op_ret = op_ret; stub->args.fsyncdir_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1189,7 +1306,7 @@ out: call_stub_t * fop_statfs_stub (call_frame_t *frame, fop_statfs_t fn, - loc_t *loc) + loc_t *loc, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1201,6 +1318,9 @@ fop_statfs_stub (call_frame_t *frame, stub->args.statfs.fn = fn; loc_copy (&stub->args.statfs.loc, loc); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1211,8 +1331,7 @@ fop_statfs_cbk_stub (call_frame_t *frame, fop_statfs_cbk_t fn, int32_t op_ret, int32_t op_errno, - struct statvfs *buf) - + struct statvfs *buf, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1226,6 +1345,9 @@ fop_statfs_cbk_stub (call_frame_t *frame, stub->args.statfs_cbk.op_errno = op_errno; if (op_ret == 0) stub->args.statfs_cbk.buf = *buf; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1236,7 +1358,7 @@ fop_setxattr_stub (call_frame_t *frame, fop_setxattr_t fn, loc_t *loc, dict_t *dict, - int32_t flags) + int32_t flags, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1252,6 +1374,9 @@ fop_setxattr_stub (call_frame_t *frame, if (dict) stub->args.setxattr.dict = dict_ref (dict); stub->args.setxattr.flags = flags; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1261,7 +1386,7 @@ call_stub_t * fop_setxattr_cbk_stub (call_frame_t *frame, fop_setxattr_cbk_t fn, int32_t op_ret, - int32_t op_errno) + int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1273,6 +1398,9 @@ fop_setxattr_cbk_stub (call_frame_t *frame, stub->args.setxattr_cbk.fn = fn; stub->args.setxattr_cbk.op_ret = op_ret; stub->args.setxattr_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1281,7 +1409,7 @@ call_stub_t * fop_getxattr_stub (call_frame_t *frame, fop_getxattr_t fn, loc_t *loc, - const char *name) + const char *name, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1296,6 +1424,9 @@ fop_getxattr_stub (call_frame_t *frame, if (name) stub->args.getxattr.name = gf_strdup (name); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1306,7 +1437,7 @@ fop_getxattr_cbk_stub (call_frame_t *frame, fop_getxattr_cbk_t fn, int32_t op_ret, int32_t op_errno, - dict_t *dict) + dict_t *dict, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1321,6 +1452,9 @@ fop_getxattr_cbk_stub (call_frame_t *frame, /* TODO */ if (dict) stub->args.getxattr_cbk.dict = dict_ref (dict); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1331,7 +1465,7 @@ fop_fsetxattr_stub (call_frame_t *frame, fop_fsetxattr_t fn, fd_t *fd, dict_t *dict, - int32_t flags) + int32_t flags, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1348,6 +1482,9 @@ fop_fsetxattr_stub (call_frame_t *frame, if (dict) stub->args.fsetxattr.dict = dict_ref (dict); stub->args.fsetxattr.flags = flags; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1357,7 +1494,7 @@ call_stub_t * fop_fsetxattr_cbk_stub (call_frame_t *frame, fop_fsetxattr_cbk_t fn, int32_t op_ret, - int32_t op_errno) + int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1369,6 +1506,9 @@ fop_fsetxattr_cbk_stub (call_frame_t *frame, stub->args.fsetxattr_cbk.fn = fn; stub->args.fsetxattr_cbk.op_ret = op_ret; stub->args.fsetxattr_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1378,7 +1518,7 @@ call_stub_t * fop_fgetxattr_stub (call_frame_t *frame, fop_fgetxattr_t fn, fd_t *fd, - const char *name) + const char *name, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1393,6 +1533,9 @@ fop_fgetxattr_stub (call_frame_t *frame, if (name) stub->args.fgetxattr.name = gf_strdup (name); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1403,7 +1546,7 @@ fop_fgetxattr_cbk_stub (call_frame_t *frame, fop_fgetxattr_cbk_t fn, int32_t op_ret, int32_t op_errno, - dict_t *dict) + dict_t *dict, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1419,6 +1562,9 @@ fop_fgetxattr_cbk_stub (call_frame_t *frame, /* TODO */ if (dict) stub->args.fgetxattr_cbk.dict = dict_ref (dict); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1428,7 +1574,7 @@ call_stub_t * fop_removexattr_stub (call_frame_t *frame, fop_removexattr_t fn, loc_t *loc, - const char *name) + const char *name, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1442,6 +1588,9 @@ fop_removexattr_stub (call_frame_t *frame, stub->args.removexattr.fn = fn; loc_copy (&stub->args.removexattr.loc, loc); stub->args.removexattr.name = gf_strdup (name); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1451,7 +1600,7 @@ call_stub_t * fop_removexattr_cbk_stub (call_frame_t *frame, fop_removexattr_cbk_t fn, int32_t op_ret, - int32_t op_errno) + int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1463,6 +1612,9 @@ fop_removexattr_cbk_stub (call_frame_t *frame, stub->args.removexattr_cbk.fn = fn; stub->args.removexattr_cbk.op_ret = op_ret; stub->args.removexattr_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1471,7 +1623,7 @@ call_stub_t * fop_fremovexattr_stub (call_frame_t *frame, fop_fremovexattr_t fn, fd_t *fd, - const char *name) + const char *name, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1485,6 +1637,9 @@ fop_fremovexattr_stub (call_frame_t *frame, stub->args.fremovexattr.fn = fn; stub->args.fremovexattr.fd = fd_ref (fd); stub->args.fremovexattr.name = gf_strdup (name); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1494,7 +1649,7 @@ call_stub_t * fop_fremovexattr_cbk_stub (call_frame_t *frame, fop_fremovexattr_cbk_t fn, int32_t op_ret, - int32_t op_errno) + int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1506,6 +1661,9 @@ fop_fremovexattr_cbk_stub (call_frame_t *frame, stub->args.fremovexattr_cbk.fn = fn; stub->args.fremovexattr_cbk.op_ret = op_ret; stub->args.fremovexattr_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1515,7 +1673,7 @@ fop_lk_stub (call_frame_t *frame, fop_lk_t fn, fd_t *fd, int32_t cmd, - struct gf_flock *lock) + struct gf_flock *lock, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1530,6 +1688,9 @@ fop_lk_stub (call_frame_t *frame, stub->args.lk.fd = fd_ref (fd); stub->args.lk.cmd = cmd; stub->args.lk.lock = *lock; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1540,8 +1701,7 @@ fop_lk_cbk_stub (call_frame_t *frame, fop_lk_cbk_t fn, int32_t op_ret, int32_t op_errno, - struct gf_flock *lock) - + struct gf_flock *lock, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1555,13 +1715,17 @@ fop_lk_cbk_stub (call_frame_t *frame, stub->args.lk_cbk.op_errno = op_errno; if (op_ret == 0) stub->args.lk_cbk.lock = *lock; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } call_stub_t * fop_inodelk_stub (call_frame_t *frame, fop_inodelk_t fn, - const char *volume, loc_t *loc, int32_t cmd, struct gf_flock *lock) + const char *volume, loc_t *loc, int32_t cmd, + struct gf_flock *lock, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1579,13 +1743,16 @@ fop_inodelk_stub (call_frame_t *frame, fop_inodelk_t fn, loc_copy (&stub->args.inodelk.loc, loc); stub->args.inodelk.cmd = cmd; stub->args.inodelk.lock = *lock; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } call_stub_t * fop_inodelk_cbk_stub (call_frame_t *frame, fop_inodelk_cbk_t fn, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1598,6 +1765,9 @@ fop_inodelk_cbk_stub (call_frame_t *frame, fop_inodelk_cbk_t fn, stub->args.inodelk_cbk.op_ret = op_ret; stub->args.inodelk_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1605,7 +1775,8 @@ out: call_stub_t * fop_finodelk_stub (call_frame_t *frame, fop_finodelk_t fn, - const char *volume, fd_t *fd, int32_t cmd, struct gf_flock *lock) + const char *volume, fd_t *fd, int32_t cmd, + struct gf_flock *lock, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1626,6 +1797,9 @@ fop_finodelk_stub (call_frame_t *frame, fop_finodelk_t fn, stub->args.finodelk.cmd = cmd; stub->args.finodelk.lock = *lock; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1633,7 +1807,7 @@ out: call_stub_t * fop_finodelk_cbk_stub (call_frame_t *frame, fop_inodelk_cbk_t fn, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1646,6 +1820,9 @@ fop_finodelk_cbk_stub (call_frame_t *frame, fop_inodelk_cbk_t fn, stub->args.finodelk_cbk.op_ret = op_ret; stub->args.finodelk_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1654,7 +1831,7 @@ out: call_stub_t * fop_entrylk_stub (call_frame_t *frame, fop_entrylk_t fn, const char *volume, loc_t *loc, const char *name, - entrylk_cmd cmd, entrylk_type type) + entrylk_cmd cmd, entrylk_type type, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1675,13 +1852,16 @@ fop_entrylk_stub (call_frame_t *frame, fop_entrylk_t fn, if (name) stub->args.entrylk.name = gf_strdup (name); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } call_stub_t * fop_entrylk_cbk_stub (call_frame_t *frame, fop_entrylk_cbk_t fn, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1694,6 +1874,9 @@ fop_entrylk_cbk_stub (call_frame_t *frame, fop_entrylk_cbk_t fn, stub->args.entrylk_cbk.op_ret = op_ret; stub->args.entrylk_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1702,7 +1885,7 @@ out: call_stub_t * fop_fentrylk_stub (call_frame_t *frame, fop_fentrylk_t fn, const char *volume, fd_t *fd, const char *name, - entrylk_cmd cmd, entrylk_type type) + entrylk_cmd cmd, entrylk_type type, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1723,13 +1906,16 @@ fop_fentrylk_stub (call_frame_t *frame, fop_fentrylk_t fn, if (name) stub->args.fentrylk.name = gf_strdup (name); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } call_stub_t * fop_fentrylk_cbk_stub (call_frame_t *frame, fop_fentrylk_cbk_t fn, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1742,6 +1928,9 @@ fop_fentrylk_cbk_stub (call_frame_t *frame, fop_fentrylk_cbk_t fn, stub->args.fentrylk_cbk.op_ret = op_ret; stub->args.fentrylk_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1752,7 +1941,7 @@ fop_readdirp_cbk_stub (call_frame_t *frame, fop_readdirp_cbk_t fn, int32_t op_ret, int32_t op_errno, - gf_dirent_t *entries) + gf_dirent_t *entries, dict_t *xdata) { call_stub_t *stub = NULL; gf_dirent_t *stub_entry = NULL, *entry = NULL; @@ -1784,6 +1973,9 @@ fop_readdirp_cbk_stub (call_frame_t *frame, &stub->args.readdirp_cbk.entries.list); } } + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1794,7 +1986,7 @@ fop_readdir_cbk_stub (call_frame_t *frame, fop_readdir_cbk_t fn, int32_t op_ret, int32_t op_errno, - gf_dirent_t *entries) + gf_dirent_t *entries, dict_t *xdata) { call_stub_t *stub = NULL; gf_dirent_t *stub_entry = NULL, *entry = NULL; @@ -1826,6 +2018,9 @@ fop_readdir_cbk_stub (call_frame_t *frame, &stub->args.readdir_cbk.entries.list); } } + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1835,7 +2030,7 @@ fop_readdir_stub (call_frame_t *frame, fop_readdir_t fn, fd_t *fd, size_t size, - off_t off) + off_t off, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1847,6 +2042,9 @@ fop_readdir_stub (call_frame_t *frame, stub->args.readdir.size = size; stub->args.readdir.off = off; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1857,7 +2055,7 @@ fop_readdirp_stub (call_frame_t *frame, fd_t *fd, size_t size, off_t off, - dict_t *dict) + dict_t *xdata) { call_stub_t *stub = NULL; @@ -1868,9 +2066,8 @@ fop_readdirp_stub (call_frame_t *frame, stub->args.readdirp.fd = fd_ref (fd); stub->args.readdirp.size = size; stub->args.readdirp.off = off; - if (dict != NULL) { - stub->args.readdirp.dict = dict_ref (dict); - } + if (xdata) + stub->xdata = dict_ref (xdata); out: return stub; @@ -1880,7 +2077,7 @@ call_stub_t * fop_rchecksum_stub (call_frame_t *frame, fop_rchecksum_t fn, fd_t *fd, off_t offset, - int32_t len) + int32_t len, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1894,6 +2091,9 @@ fop_rchecksum_stub (call_frame_t *frame, stub->args.rchecksum.fd = fd_ref (fd); stub->args.rchecksum.offset = offset; stub->args.rchecksum.len = len; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1905,7 +2105,7 @@ fop_rchecksum_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, uint32_t weak_checksum, - uint8_t *strong_checksum) + uint8_t *strong_checksum, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1926,6 +2126,9 @@ fop_rchecksum_cbk_stub (call_frame_t *frame, stub->args.rchecksum_cbk.strong_checksum = memdup (strong_checksum, MD5_DIGEST_LEN); } + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1935,7 +2138,7 @@ call_stub_t * fop_xattrop_cbk_stub (call_frame_t *frame, fop_xattrop_cbk_t fn, int32_t op_ret, - int32_t op_errno) + int32_t op_errno, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1948,6 +2151,9 @@ fop_xattrop_cbk_stub (call_frame_t *frame, stub->args.xattrop_cbk.op_ret = op_ret; stub->args.xattrop_cbk.op_errno = op_errno; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1958,7 +2164,7 @@ fop_fxattrop_cbk_stub (call_frame_t *frame, fop_fxattrop_cbk_t fn, int32_t op_ret, int32_t op_errno, - dict_t *xattr) + dict_t *xattr, dict_t *xdata) { call_stub_t *stub = NULL; GF_VALIDATE_OR_GOTO ("call-stub", frame, out); @@ -1972,6 +2178,9 @@ fop_fxattrop_cbk_stub (call_frame_t *frame, if (xattr) stub->args.fxattrop_cbk.xattr = dict_ref (xattr); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -1982,7 +2191,7 @@ fop_xattrop_stub (call_frame_t *frame, fop_xattrop_t fn, loc_t *loc, gf_xattrop_flags_t optype, - dict_t *xattr) + dict_t *xattr, dict_t *xdata) { call_stub_t *stub = NULL; @@ -1999,6 +2208,9 @@ fop_xattrop_stub (call_frame_t *frame, stub->args.xattrop.optype = optype; stub->args.xattrop.xattr = dict_ref (xattr); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -2008,7 +2220,7 @@ fop_fxattrop_stub (call_frame_t *frame, fop_fxattrop_t fn, fd_t *fd, gf_xattrop_flags_t optype, - dict_t *xattr) + dict_t *xattr, dict_t *xdata) { call_stub_t *stub = NULL; @@ -2025,6 +2237,9 @@ fop_fxattrop_stub (call_frame_t *frame, stub->args.fxattrop.optype = optype; stub->args.fxattrop.xattr = dict_ref (xattr); + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -2036,7 +2251,7 @@ fop_setattr_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *statpre, - struct iatt *statpost) + struct iatt *statpost, dict_t *xdata) { call_stub_t *stub = NULL; @@ -2055,6 +2270,9 @@ fop_setattr_cbk_stub (call_frame_t *frame, if (statpost) stub->args.setattr_cbk.statpost = *statpost; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -2065,7 +2283,7 @@ fop_fsetattr_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *statpre, - struct iatt *statpost) + struct iatt *statpost, dict_t *xdata) { call_stub_t *stub = NULL; @@ -2083,6 +2301,9 @@ fop_fsetattr_cbk_stub (call_frame_t *frame, stub->args.setattr_cbk.statpre = *statpre; if (statpost) stub->args.fsetattr_cbk.statpost = *statpost; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -2092,7 +2313,7 @@ fop_setattr_stub (call_frame_t *frame, fop_setattr_t fn, loc_t *loc, struct iatt *stbuf, - int32_t valid) + int32_t valid, dict_t *xdata) { call_stub_t *stub = NULL; @@ -2111,6 +2332,9 @@ fop_setattr_stub (call_frame_t *frame, stub->args.setattr.valid = valid; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -2120,7 +2344,7 @@ fop_fsetattr_stub (call_frame_t *frame, fop_fsetattr_t fn, fd_t *fd, struct iatt *stbuf, - int32_t valid) + int32_t valid, dict_t *xdata) { call_stub_t *stub = NULL; @@ -2140,6 +2364,9 @@ fop_fsetattr_stub (call_frame_t *frame, stub->args.fsetattr.valid = valid; + if (xdata) + stub->xdata = dict_ref (xdata); + out: return stub; } @@ -2156,7 +2383,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, &stub->args.open.loc, stub->args.open.flags, stub->args.open.fd, - stub->args.open.wbflags); + stub->xdata); break; } case GF_FOP_CREATE: @@ -2166,15 +2393,16 @@ call_resume_wind (call_stub_t *stub) &stub->args.create.loc, stub->args.create.flags, stub->args.create.mode, + stub->args.create.umask, stub->args.create.fd, - stub->args.create.params); + stub->xdata); break; } case GF_FOP_STAT: { stub->args.stat.fn (stub->frame, stub->frame->this, - &stub->args.stat.loc); + &stub->args.stat.loc, stub->xdata); break; } case GF_FOP_READLINK: @@ -2182,7 +2410,7 @@ call_resume_wind (call_stub_t *stub) stub->args.readlink.fn (stub->frame, stub->frame->this, &stub->args.readlink.loc, - stub->args.readlink.size); + stub->args.readlink.size, stub->xdata); break; } @@ -2192,7 +2420,7 @@ call_resume_wind (call_stub_t *stub) &stub->args.mknod.loc, stub->args.mknod.mode, stub->args.mknod.rdev, - stub->args.mknod.params); + stub->args.mknod.umask, stub->xdata); } break; @@ -2201,7 +2429,7 @@ call_resume_wind (call_stub_t *stub) stub->args.mkdir.fn (stub->frame, stub->frame->this, &stub->args.mkdir.loc, stub->args.mkdir.mode, - stub->args.mkdir.params); + stub->args.mkdir.umask, stub->xdata); } break; @@ -2209,7 +2437,8 @@ call_resume_wind (call_stub_t *stub) { stub->args.unlink.fn (stub->frame, stub->frame->this, - &stub->args.unlink.loc); + &stub->args.unlink.loc, + stub->args.unlink.xflag, stub->xdata); } break; @@ -2217,7 +2446,7 @@ call_resume_wind (call_stub_t *stub) { stub->args.rmdir.fn (stub->frame, stub->frame->this, &stub->args.rmdir.loc, - stub->args.rmdir.flags); + stub->args.rmdir.flags, stub->xdata); } break; @@ -2227,7 +2456,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, stub->args.symlink.linkname, &stub->args.symlink.loc, - stub->args.symlink.params); + stub->args.symlink.umask, stub->xdata); } break; @@ -2236,7 +2465,7 @@ call_resume_wind (call_stub_t *stub) stub->args.rename.fn (stub->frame, stub->frame->this, &stub->args.rename.old, - &stub->args.rename.new); + &stub->args.rename.new, stub->xdata); } break; @@ -2245,7 +2474,7 @@ call_resume_wind (call_stub_t *stub) stub->args.link.fn (stub->frame, stub->frame->this, &stub->args.link.oldloc, - &stub->args.link.newloc); + &stub->args.link.newloc, stub->xdata); } break; @@ -2254,7 +2483,7 @@ call_resume_wind (call_stub_t *stub) stub->args.truncate.fn (stub->frame, stub->frame->this, &stub->args.truncate.loc, - stub->args.truncate.off); + stub->args.truncate.off, stub->xdata); break; } @@ -2265,7 +2494,7 @@ call_resume_wind (call_stub_t *stub) stub->args.readv.fd, stub->args.readv.size, stub->args.readv.off, - stub->args.readv.flags); + stub->args.readv.flags, stub->xdata); break; } @@ -2278,7 +2507,7 @@ call_resume_wind (call_stub_t *stub) stub->args.writev.count, stub->args.writev.off, stub->args.writev.flags, - stub->args.writev.iobref); + stub->args.writev.iobref, stub->xdata); break; } @@ -2286,14 +2515,14 @@ call_resume_wind (call_stub_t *stub) { stub->args.statfs.fn (stub->frame, stub->frame->this, - &stub->args.statfs.loc); + &stub->args.statfs.loc, stub->xdata); break; } case GF_FOP_FLUSH: { stub->args.flush.fn (stub->frame, stub->frame->this, - stub->args.flush.fd); + stub->args.flush.fd, stub->xdata); break; } @@ -2302,7 +2531,7 @@ call_resume_wind (call_stub_t *stub) stub->args.fsync.fn (stub->frame, stub->frame->this, stub->args.fsync.fd, - stub->args.fsync.datasync); + stub->args.fsync.datasync, stub->xdata); break; } @@ -2312,7 +2541,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, &stub->args.setxattr.loc, stub->args.setxattr.dict, - stub->args.setxattr.flags); + stub->args.setxattr.flags, stub->xdata); break; } @@ -2321,7 +2550,7 @@ call_resume_wind (call_stub_t *stub) stub->args.getxattr.fn (stub->frame, stub->frame->this, &stub->args.getxattr.loc, - stub->args.getxattr.name); + stub->args.getxattr.name, stub->xdata); break; } @@ -2331,7 +2560,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, stub->args.fsetxattr.fd, stub->args.fsetxattr.dict, - stub->args.fsetxattr.flags); + stub->args.fsetxattr.flags, stub->xdata); break; } @@ -2340,7 +2569,7 @@ call_resume_wind (call_stub_t *stub) stub->args.fgetxattr.fn (stub->frame, stub->frame->this, stub->args.fgetxattr.fd, - stub->args.fgetxattr.name); + stub->args.fgetxattr.name, stub->xdata); break; } @@ -2349,7 +2578,7 @@ call_resume_wind (call_stub_t *stub) stub->args.removexattr.fn (stub->frame, stub->frame->this, &stub->args.removexattr.loc, - stub->args.removexattr.name); + stub->args.removexattr.name, stub->xdata); break; } @@ -2358,7 +2587,7 @@ call_resume_wind (call_stub_t *stub) stub->args.fremovexattr.fn (stub->frame, stub->frame->this, stub->args.fremovexattr.fd, - stub->args.fremovexattr.name); + stub->args.fremovexattr.name, stub->xdata); break; } @@ -2367,7 +2596,7 @@ call_resume_wind (call_stub_t *stub) stub->args.opendir.fn (stub->frame, stub->frame->this, &stub->args.opendir.loc, - stub->args.opendir.fd); + stub->args.opendir.fd, stub->xdata); break; } @@ -2376,7 +2605,7 @@ call_resume_wind (call_stub_t *stub) stub->args.fsyncdir.fn (stub->frame, stub->frame->this, stub->args.fsyncdir.fd, - stub->args.fsyncdir.datasync); + stub->args.fsyncdir.datasync, stub->xdata); break; } @@ -2385,7 +2614,7 @@ call_resume_wind (call_stub_t *stub) stub->args.access.fn (stub->frame, stub->frame->this, &stub->args.access.loc, - stub->args.access.mask); + stub->args.access.mask, stub->xdata); break; } @@ -2394,7 +2623,7 @@ call_resume_wind (call_stub_t *stub) stub->args.ftruncate.fn (stub->frame, stub->frame->this, stub->args.ftruncate.fd, - stub->args.ftruncate.off); + stub->args.ftruncate.off, stub->xdata); break; } @@ -2402,7 +2631,7 @@ call_resume_wind (call_stub_t *stub) { stub->args.fstat.fn (stub->frame, stub->frame->this, - stub->args.fstat.fd); + stub->args.fstat.fd, stub->xdata); break; } @@ -2412,7 +2641,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, stub->args.lk.fd, stub->args.lk.cmd, - &stub->args.lk.lock); + &stub->args.lk.lock, stub->xdata); break; } @@ -2423,7 +2652,7 @@ call_resume_wind (call_stub_t *stub) stub->args.inodelk.volume, &stub->args.inodelk.loc, stub->args.inodelk.cmd, - &stub->args.inodelk.lock); + &stub->args.inodelk.lock, stub->xdata); break; } @@ -2434,7 +2663,7 @@ call_resume_wind (call_stub_t *stub) stub->args.finodelk.volume, stub->args.finodelk.fd, stub->args.finodelk.cmd, - &stub->args.finodelk.lock); + &stub->args.finodelk.lock, stub->xdata); break; } @@ -2446,7 +2675,7 @@ call_resume_wind (call_stub_t *stub) &stub->args.entrylk.loc, stub->args.entrylk.name, stub->args.entrylk.cmd, - stub->args.entrylk.type); + stub->args.entrylk.type, stub->xdata); break; } @@ -2458,7 +2687,7 @@ call_resume_wind (call_stub_t *stub) stub->args.fentrylk.fd, stub->args.fentrylk.name, stub->args.fentrylk.cmd, - stub->args.fentrylk.type); + stub->args.fentrylk.type, stub->xdata); break; } @@ -2469,7 +2698,7 @@ call_resume_wind (call_stub_t *stub) stub->args.lookup.fn (stub->frame, stub->frame->this, &stub->args.lookup.loc, - stub->args.lookup.xattr_req); + stub->xdata); break; } @@ -2479,7 +2708,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, stub->args.rchecksum.fd, stub->args.rchecksum.offset, - stub->args.rchecksum.len); + stub->args.rchecksum.len, stub->xdata); break; } @@ -2489,7 +2718,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, stub->args.readdir.fd, stub->args.readdir.size, - stub->args.readdir.off); + stub->args.readdir.off, stub->xdata); break; } @@ -2500,7 +2729,7 @@ call_resume_wind (call_stub_t *stub) stub->args.readdirp.fd, stub->args.readdirp.size, stub->args.readdirp.off, - stub->args.readdirp.dict); + stub->xdata); break; } @@ -2510,7 +2739,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, &stub->args.xattrop.loc, stub->args.xattrop.optype, - stub->args.xattrop.xattr); + stub->args.xattrop.xattr, stub->xdata); break; } @@ -2520,7 +2749,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, stub->args.fxattrop.fd, stub->args.fxattrop.optype, - stub->args.fxattrop.xattr); + stub->args.fxattrop.xattr, stub->xdata); break; } @@ -2530,7 +2759,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, &stub->args.setattr.loc, &stub->args.setattr.stbuf, - stub->args.setattr.valid); + stub->args.setattr.valid, stub->xdata); break; } case GF_FOP_FSETATTR: @@ -2539,7 +2768,7 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, stub->args.fsetattr.fd, &stub->args.fsetattr.stbuf, - stub->args.fsetattr.valid); + stub->args.fsetattr.valid, stub->xdata); break; } default: @@ -2569,14 +2798,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.open_cbk.op_ret, stub->args.open_cbk.op_errno, - stub->args.open_cbk.fd); + stub->args.open_cbk.fd, stub->xdata); else stub->args.open_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.open_cbk.op_ret, stub->args.open_cbk.op_errno, - stub->args.open_cbk.fd); + stub->args.open_cbk.fd, stub->xdata); break; } @@ -2590,7 +2819,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.create_cbk.inode, &stub->args.create_cbk.buf, &stub->args.create_cbk.preparent, - &stub->args.create_cbk.postparent); + &stub->args.create_cbk.postparent, stub->xdata); else stub->args.create_cbk.fn (stub->frame, stub->frame->cookie, @@ -2601,7 +2830,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.create_cbk.inode, &stub->args.create_cbk.buf, &stub->args.create_cbk.preparent, - &stub->args.create_cbk.postparent); + &stub->args.create_cbk.postparent, stub->xdata); break; } @@ -2612,14 +2841,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.stat_cbk.op_ret, stub->args.stat_cbk.op_errno, - &stub->args.stat_cbk.buf); + &stub->args.stat_cbk.buf, stub->xdata); else stub->args.stat_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.stat_cbk.op_ret, stub->args.stat_cbk.op_errno, - &stub->args.stat_cbk.buf); + &stub->args.stat_cbk.buf, stub->xdata); break; } @@ -2631,7 +2860,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.readlink_cbk.op_ret, stub->args.readlink_cbk.op_errno, stub->args.readlink_cbk.buf, - &stub->args.readlink_cbk.sbuf); + &stub->args.readlink_cbk.sbuf, stub->xdata); else stub->args.readlink_cbk.fn (stub->frame, stub->frame->cookie, @@ -2639,7 +2868,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.readlink_cbk.op_ret, stub->args.readlink_cbk.op_errno, stub->args.readlink_cbk.buf, - &stub->args.readlink_cbk.sbuf); + &stub->args.readlink_cbk.sbuf, stub->xdata); break; } @@ -2653,7 +2882,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.mknod_cbk.inode, &stub->args.mknod_cbk.buf, &stub->args.mknod_cbk.preparent, - &stub->args.mknod_cbk.postparent); + &stub->args.mknod_cbk.postparent, stub->xdata); else stub->args.mknod_cbk.fn (stub->frame, stub->frame->cookie, @@ -2663,7 +2892,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.mknod_cbk.inode, &stub->args.mknod_cbk.buf, &stub->args.mknod_cbk.preparent, - &stub->args.mknod_cbk.postparent); + &stub->args.mknod_cbk.postparent, stub->xdata); break; } @@ -2676,7 +2905,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.mkdir_cbk.inode, &stub->args.mkdir_cbk.buf, &stub->args.mkdir_cbk.preparent, - &stub->args.mkdir_cbk.postparent); + &stub->args.mkdir_cbk.postparent, stub->xdata); else stub->args.mkdir_cbk.fn (stub->frame, stub->frame->cookie, @@ -2686,7 +2915,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.mkdir_cbk.inode, &stub->args.mkdir_cbk.buf, &stub->args.mkdir_cbk.preparent, - &stub->args.mkdir_cbk.postparent); + &stub->args.mkdir_cbk.postparent, stub->xdata); if (stub->args.mkdir_cbk.inode) inode_unref (stub->args.mkdir_cbk.inode); @@ -2701,7 +2930,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.unlink_cbk.op_ret, stub->args.unlink_cbk.op_errno, &stub->args.unlink_cbk.preparent, - &stub->args.unlink_cbk.postparent); + &stub->args.unlink_cbk.postparent, stub->xdata); else stub->args.unlink_cbk.fn (stub->frame, stub->frame->cookie, @@ -2709,7 +2938,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.unlink_cbk.op_ret, stub->args.unlink_cbk.op_errno, &stub->args.unlink_cbk.preparent, - &stub->args.unlink_cbk.postparent); + &stub->args.unlink_cbk.postparent, stub->xdata); break; } @@ -2720,7 +2949,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.rmdir_cbk.op_ret, stub->args.rmdir_cbk.op_errno, &stub->args.rmdir_cbk.preparent, - &stub->args.rmdir_cbk.postparent); + &stub->args.rmdir_cbk.postparent, stub->xdata); else stub->args.rmdir_cbk.fn (stub->frame, stub->frame->cookie, @@ -2728,7 +2957,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.rmdir_cbk.op_ret, stub->args.rmdir_cbk.op_errno, &stub->args.rmdir_cbk.preparent, - &stub->args.rmdir_cbk.postparent); + &stub->args.rmdir_cbk.postparent, stub->xdata); break; } @@ -2741,7 +2970,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.symlink_cbk.inode, &stub->args.symlink_cbk.buf, &stub->args.symlink_cbk.preparent, - &stub->args.symlink_cbk.postparent); + &stub->args.symlink_cbk.postparent, stub->xdata); else stub->args.symlink_cbk.fn (stub->frame, stub->frame->cookie, @@ -2751,7 +2980,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.symlink_cbk.inode, &stub->args.symlink_cbk.buf, &stub->args.symlink_cbk.preparent, - &stub->args.symlink_cbk.postparent); + &stub->args.symlink_cbk.postparent, stub->xdata); } break; @@ -2765,7 +2994,7 @@ call_resume_unwind (call_stub_t *stub) &stub->args.rename_cbk.preoldparent, &stub->args.rename_cbk.postoldparent, &stub->args.rename_cbk.prenewparent, - &stub->args.rename_cbk.postnewparent); + &stub->args.rename_cbk.postnewparent, stub->xdata); else stub->args.rename_cbk.fn (stub->frame, stub->frame->cookie, @@ -2776,7 +3005,7 @@ call_resume_unwind (call_stub_t *stub) &stub->args.rename_cbk.preoldparent, &stub->args.rename_cbk.postoldparent, &stub->args.rename_cbk.prenewparent, - &stub->args.rename_cbk.postnewparent); + &stub->args.rename_cbk.postnewparent, stub->xdata); break; } @@ -2787,7 +3016,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.link_cbk.op_ret, stub->args.link_cbk.op_errno, stub->args.link_cbk.inode, - &stub->args.link_cbk.buf); + &stub->args.link_cbk.buf, stub->xdata); else stub->args.link_cbk.fn (stub->frame, stub->frame->cookie, @@ -2797,7 +3026,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.link_cbk.inode, &stub->args.link_cbk.buf, &stub->args.link_cbk.preparent, - &stub->args.link_cbk.postparent); + &stub->args.link_cbk.postparent, stub->xdata); break; } @@ -2808,7 +3037,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.truncate_cbk.op_ret, stub->args.truncate_cbk.op_errno, &stub->args.truncate_cbk.prebuf, - &stub->args.truncate_cbk.postbuf); + &stub->args.truncate_cbk.postbuf, stub->xdata); else stub->args.truncate_cbk.fn (stub->frame, stub->frame->cookie, @@ -2816,7 +3045,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.truncate_cbk.op_ret, stub->args.truncate_cbk.op_errno, &stub->args.truncate_cbk.prebuf, - &stub->args.truncate_cbk.postbuf); + &stub->args.truncate_cbk.postbuf, stub->xdata); break; } @@ -2829,7 +3058,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.readv_cbk.vector, stub->args.readv_cbk.count, &stub->args.readv_cbk.stbuf, - stub->args.readv_cbk.iobref); + stub->args.readv_cbk.iobref, stub->xdata); else stub->args.readv_cbk.fn (stub->frame, stub->frame->cookie, @@ -2839,7 +3068,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.readv_cbk.vector, stub->args.readv_cbk.count, &stub->args.readv_cbk.stbuf, - stub->args.readv_cbk.iobref); + stub->args.readv_cbk.iobref, stub->xdata); } break; @@ -2850,7 +3079,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.writev_cbk.op_ret, stub->args.writev_cbk.op_errno, &stub->args.writev_cbk.prebuf, - &stub->args.writev_cbk.postbuf); + &stub->args.writev_cbk.postbuf, stub->xdata); else stub->args.writev_cbk.fn (stub->frame, stub->frame->cookie, @@ -2858,7 +3087,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.writev_cbk.op_ret, stub->args.writev_cbk.op_errno, &stub->args.writev_cbk.prebuf, - &stub->args.writev_cbk.postbuf); + &stub->args.writev_cbk.postbuf, stub->xdata); break; } @@ -2868,14 +3097,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.statfs_cbk.op_ret, stub->args.statfs_cbk.op_errno, - &(stub->args.statfs_cbk.buf)); + &(stub->args.statfs_cbk.buf), stub->xdata); else stub->args.statfs_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.statfs_cbk.op_ret, stub->args.statfs_cbk.op_errno, - &(stub->args.statfs_cbk.buf)); + &(stub->args.statfs_cbk.buf), stub->xdata); } break; @@ -2884,13 +3113,13 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.flush_cbk.fn) STACK_UNWIND (stub->frame, stub->args.flush_cbk.op_ret, - stub->args.flush_cbk.op_errno); + stub->args.flush_cbk.op_errno, stub->xdata); else stub->args.flush_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.flush_cbk.op_ret, - stub->args.flush_cbk.op_errno); + stub->args.flush_cbk.op_errno, stub->xdata); break; } @@ -2902,7 +3131,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.fsync_cbk.op_ret, stub->args.fsync_cbk.op_errno, &stub->args.fsync_cbk.prebuf, - &stub->args.fsync_cbk.postbuf); + &stub->args.fsync_cbk.postbuf, stub->xdata); else stub->args.fsync_cbk.fn (stub->frame, stub->frame->cookie, @@ -2910,7 +3139,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.fsync_cbk.op_ret, stub->args.fsync_cbk.op_errno, &stub->args.fsync_cbk.prebuf, - &stub->args.fsync_cbk.postbuf); + &stub->args.fsync_cbk.postbuf, stub->xdata); break; } @@ -2919,14 +3148,14 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.setxattr_cbk.fn) STACK_UNWIND (stub->frame, stub->args.setxattr_cbk.op_ret, - stub->args.setxattr_cbk.op_errno); + stub->args.setxattr_cbk.op_errno, stub->xdata); else stub->args.setxattr_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.setxattr_cbk.op_ret, - stub->args.setxattr_cbk.op_errno); + stub->args.setxattr_cbk.op_errno, stub->xdata); break; } @@ -2937,14 +3166,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.getxattr_cbk.op_ret, stub->args.getxattr_cbk.op_errno, - stub->args.getxattr_cbk.dict); + stub->args.getxattr_cbk.dict, stub->xdata); else stub->args.getxattr_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.getxattr_cbk.op_ret, stub->args.getxattr_cbk.op_errno, - stub->args.getxattr_cbk.dict); + stub->args.getxattr_cbk.dict, stub->xdata); break; } @@ -2953,14 +3182,14 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.fsetxattr_cbk.fn) STACK_UNWIND (stub->frame, stub->args.fsetxattr_cbk.op_ret, - stub->args.fsetxattr_cbk.op_errno); + stub->args.fsetxattr_cbk.op_errno, stub->xdata); else stub->args.fsetxattr_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.fsetxattr_cbk.op_ret, - stub->args.fsetxattr_cbk.op_errno); + stub->args.fsetxattr_cbk.op_errno, stub->xdata); break; } @@ -2971,14 +3200,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.fgetxattr_cbk.op_ret, stub->args.fgetxattr_cbk.op_errno, - stub->args.fgetxattr_cbk.dict); + stub->args.fgetxattr_cbk.dict, stub->xdata); else stub->args.fgetxattr_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.fgetxattr_cbk.op_ret, stub->args.fgetxattr_cbk.op_errno, - stub->args.fgetxattr_cbk.dict); + stub->args.fgetxattr_cbk.dict, stub->xdata); break; } @@ -2987,13 +3216,13 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.removexattr_cbk.fn) STACK_UNWIND (stub->frame, stub->args.removexattr_cbk.op_ret, - stub->args.removexattr_cbk.op_errno); + stub->args.removexattr_cbk.op_errno, stub->xdata); else stub->args.removexattr_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.removexattr_cbk.op_ret, - stub->args.removexattr_cbk.op_errno); + stub->args.removexattr_cbk.op_errno, stub->xdata); break; } @@ -3003,13 +3232,13 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.fremovexattr_cbk.fn) STACK_UNWIND (stub->frame, stub->args.fremovexattr_cbk.op_ret, - stub->args.fremovexattr_cbk.op_errno); + stub->args.fremovexattr_cbk.op_errno, stub->xdata); else stub->args.fremovexattr_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.fremovexattr_cbk.op_ret, - stub->args.fremovexattr_cbk.op_errno); + stub->args.fremovexattr_cbk.op_errno, stub->xdata); break; } @@ -3020,14 +3249,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.opendir_cbk.op_ret, stub->args.opendir_cbk.op_errno, - stub->args.opendir_cbk.fd); + stub->args.opendir_cbk.fd, stub->xdata); else stub->args.opendir_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.opendir_cbk.op_ret, stub->args.opendir_cbk.op_errno, - stub->args.opendir_cbk.fd); + stub->args.opendir_cbk.fd, stub->xdata); break; } @@ -3036,13 +3265,13 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.fsyncdir_cbk.fn) STACK_UNWIND (stub->frame, stub->args.fsyncdir_cbk.op_ret, - stub->args.fsyncdir_cbk.op_errno); + stub->args.fsyncdir_cbk.op_errno, stub->xdata); else stub->args.fsyncdir_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.fsyncdir_cbk.op_ret, - stub->args.fsyncdir_cbk.op_errno); + stub->args.fsyncdir_cbk.op_errno, stub->xdata); break; } @@ -3051,13 +3280,13 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.access_cbk.fn) STACK_UNWIND (stub->frame, stub->args.access_cbk.op_ret, - stub->args.access_cbk.op_errno); + stub->args.access_cbk.op_errno, stub->xdata); else stub->args.access_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.access_cbk.op_ret, - stub->args.access_cbk.op_errno); + stub->args.access_cbk.op_errno, stub->xdata); break; } @@ -3069,7 +3298,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.ftruncate_cbk.op_ret, stub->args.ftruncate_cbk.op_errno, &stub->args.ftruncate_cbk.prebuf, - &stub->args.ftruncate_cbk.postbuf); + &stub->args.ftruncate_cbk.postbuf, stub->xdata); else stub->args.ftruncate_cbk.fn (stub->frame, stub->frame->cookie, @@ -3077,7 +3306,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.ftruncate_cbk.op_ret, stub->args.ftruncate_cbk.op_errno, &stub->args.ftruncate_cbk.prebuf, - &stub->args.ftruncate_cbk.postbuf); + &stub->args.ftruncate_cbk.postbuf, stub->xdata); break; } @@ -3087,14 +3316,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.fstat_cbk.op_ret, stub->args.fstat_cbk.op_errno, - &stub->args.fstat_cbk.buf); + &stub->args.fstat_cbk.buf, stub->xdata); else stub->args.fstat_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.fstat_cbk.op_ret, stub->args.fstat_cbk.op_errno, - &stub->args.fstat_cbk.buf); + &stub->args.fstat_cbk.buf, stub->xdata); break; } @@ -3105,14 +3334,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.lk_cbk.op_ret, stub->args.lk_cbk.op_errno, - &stub->args.lk_cbk.lock); + &stub->args.lk_cbk.lock, stub->xdata); else stub->args.lk_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.lk_cbk.op_ret, stub->args.lk_cbk.op_errno, - &stub->args.lk_cbk.lock); + &stub->args.lk_cbk.lock, stub->xdata); break; } @@ -3121,14 +3350,14 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.inodelk_cbk.fn) STACK_UNWIND (stub->frame, stub->args.inodelk_cbk.op_ret, - stub->args.inodelk_cbk.op_errno); + stub->args.inodelk_cbk.op_errno, stub->xdata); else stub->args.inodelk_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.inodelk_cbk.op_ret, - stub->args.inodelk_cbk.op_errno); + stub->args.inodelk_cbk.op_errno, stub->xdata); break; } @@ -3137,14 +3366,14 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.finodelk_cbk.fn) STACK_UNWIND (stub->frame, stub->args.finodelk_cbk.op_ret, - stub->args.finodelk_cbk.op_errno); + stub->args.finodelk_cbk.op_errno, stub->xdata); else stub->args.finodelk_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.finodelk_cbk.op_ret, - stub->args.finodelk_cbk.op_errno); + stub->args.finodelk_cbk.op_errno, stub->xdata); break; } @@ -3153,14 +3382,14 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.entrylk_cbk.fn) STACK_UNWIND (stub->frame, stub->args.entrylk_cbk.op_ret, - stub->args.entrylk_cbk.op_errno); + stub->args.entrylk_cbk.op_errno, stub->xdata); else stub->args.entrylk_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.entrylk_cbk.op_ret, - stub->args.entrylk_cbk.op_errno); + stub->args.entrylk_cbk.op_errno, stub->xdata); break; } @@ -3169,14 +3398,14 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.fentrylk_cbk.fn) STACK_UNWIND (stub->frame, stub->args.fentrylk_cbk.op_ret, - stub->args.fentrylk_cbk.op_errno); + stub->args.fentrylk_cbk.op_errno, stub->xdata); else stub->args.fentrylk_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.fentrylk_cbk.op_ret, - stub->args.fentrylk_cbk.op_errno); + stub->args.fentrylk_cbk.op_errno, stub->xdata); break; } @@ -3188,7 +3417,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.lookup_cbk.op_errno, stub->args.lookup_cbk.inode, &stub->args.lookup_cbk.buf, - stub->args.lookup_cbk.dict, + stub->xdata, &stub->args.lookup_cbk.postparent); else stub->args.lookup_cbk.fn (stub->frame, @@ -3198,12 +3427,10 @@ call_resume_unwind (call_stub_t *stub) stub->args.lookup_cbk.op_errno, stub->args.lookup_cbk.inode, &stub->args.lookup_cbk.buf, - stub->args.lookup_cbk.dict, + stub->xdata, &stub->args.lookup_cbk.postparent); /* FIXME NULL should not be passed */ - if (stub->args.lookup_cbk.dict) - dict_unref (stub->args.lookup_cbk.dict); if (stub->args.lookup_cbk.inode) inode_unref (stub->args.lookup_cbk.inode); @@ -3217,7 +3444,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.rchecksum_cbk.op_ret, stub->args.rchecksum_cbk.op_errno, stub->args.rchecksum_cbk.weak_checksum, - stub->args.rchecksum_cbk.strong_checksum); + stub->args.rchecksum_cbk.strong_checksum, stub->xdata); else stub->args.rchecksum_cbk.fn (stub->frame, stub->frame->cookie, @@ -3225,11 +3452,10 @@ call_resume_unwind (call_stub_t *stub) stub->args.rchecksum_cbk.op_ret, stub->args.rchecksum_cbk.op_errno, stub->args.rchecksum_cbk.weak_checksum, - stub->args.rchecksum_cbk.strong_checksum); + stub->args.rchecksum_cbk.strong_checksum, stub->xdata); + if (stub->args.rchecksum_cbk.op_ret >= 0) - { GF_FREE (stub->args.rchecksum_cbk.strong_checksum); - } break; } @@ -3240,14 +3466,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.readdir_cbk.op_ret, stub->args.readdir_cbk.op_errno, - &stub->args.readdir_cbk.entries); + &stub->args.readdir_cbk.entries, stub->xdata); else stub->args.readdir_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.readdir_cbk.op_ret, stub->args.readdir_cbk.op_errno, - &stub->args.readdir_cbk.entries); + &stub->args.readdir_cbk.entries, stub->xdata); if (stub->args.readdir_cbk.op_ret > 0) gf_dirent_free (&stub->args.readdir_cbk.entries); @@ -3261,14 +3487,14 @@ call_resume_unwind (call_stub_t *stub) STACK_UNWIND (stub->frame, stub->args.readdirp_cbk.op_ret, stub->args.readdirp_cbk.op_errno, - &stub->args.readdirp_cbk.entries); + &stub->args.readdirp_cbk.entries, stub->xdata); else stub->args.readdirp_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.readdirp_cbk.op_ret, stub->args.readdirp_cbk.op_errno, - &stub->args.readdirp_cbk.entries); + &stub->args.readdirp_cbk.entries, stub->xdata); if (stub->args.readdirp_cbk.op_ret > 0) gf_dirent_free (&stub->args.readdirp_cbk.entries); @@ -3281,14 +3507,14 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.xattrop_cbk.fn) STACK_UNWIND (stub->frame, stub->args.xattrop_cbk.op_ret, - stub->args.xattrop_cbk.op_errno); + stub->args.xattrop_cbk.op_errno, stub->xdata); else stub->args.xattrop_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.xattrop_cbk.op_ret, stub->args.xattrop_cbk.op_errno, - stub->args.xattrop_cbk.xattr); + stub->args.xattrop_cbk.xattr, stub->xdata); if (stub->args.xattrop_cbk.xattr) dict_unref (stub->args.xattrop_cbk.xattr); @@ -3300,14 +3526,14 @@ call_resume_unwind (call_stub_t *stub) if (!stub->args.fxattrop_cbk.fn) STACK_UNWIND (stub->frame, stub->args.fxattrop_cbk.op_ret, - stub->args.fxattrop_cbk.op_errno); + stub->args.fxattrop_cbk.op_errno, stub->xdata); else stub->args.fxattrop_cbk.fn (stub->frame, stub->frame->cookie, stub->frame->this, stub->args.fxattrop_cbk.op_ret, stub->args.fxattrop_cbk.op_errno, - stub->args.fxattrop_cbk.xattr); + stub->args.fxattrop_cbk.xattr, stub->xdata); if (stub->args.fxattrop_cbk.xattr) dict_unref (stub->args.fxattrop_cbk.xattr); @@ -3321,7 +3547,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.setattr_cbk.op_ret, stub->args.setattr_cbk.op_errno, &stub->args.setattr_cbk.statpre, - &stub->args.setattr_cbk.statpost); + &stub->args.setattr_cbk.statpost, stub->xdata); else stub->args.setattr_cbk.fn ( stub->frame, @@ -3330,7 +3556,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.setattr_cbk.op_ret, stub->args.setattr_cbk.op_errno, &stub->args.setattr_cbk.statpre, - &stub->args.setattr_cbk.statpost); + &stub->args.setattr_cbk.statpost, stub->xdata); break; } case GF_FOP_FSETATTR: @@ -3340,7 +3566,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.fsetattr_cbk.op_ret, stub->args.fsetattr_cbk.op_errno, &stub->args.fsetattr_cbk.statpre, - &stub->args.fsetattr_cbk.statpost); + &stub->args.fsetattr_cbk.statpost, stub->xdata); else stub->args.fsetattr_cbk.fn ( stub->frame, @@ -3349,7 +3575,7 @@ call_resume_unwind (call_stub_t *stub) stub->args.fsetattr_cbk.op_ret, stub->args.fsetattr_cbk.op_errno, &stub->args.fsetattr_cbk.statpre, - &stub->args.fsetattr_cbk.statpost); + &stub->args.fsetattr_cbk.statpost, stub->xdata); break; } default: @@ -3368,6 +3594,9 @@ out: static void call_stub_destroy_wind (call_stub_t *stub) { + if (stub->xdata) + dict_unref (stub->xdata); + switch (stub->fop) { case GF_FOP_OPEN: { @@ -3381,8 +3610,6 @@ call_stub_destroy_wind (call_stub_t *stub) loc_wipe (&stub->args.create.loc); if (stub->args.create.fd) fd_unref (stub->args.create.fd); - if (stub->args.create.params) - dict_unref (stub->args.create.params); break; } case GF_FOP_STAT: @@ -3399,16 +3626,12 @@ call_stub_destroy_wind (call_stub_t *stub) case GF_FOP_MKNOD: { loc_wipe (&stub->args.mknod.loc); - if (stub->args.mknod.params) - dict_unref (stub->args.mknod.params); } break; case GF_FOP_MKDIR: { loc_wipe (&stub->args.mkdir.loc); - if (stub->args.mkdir.params) - dict_unref (stub->args.mkdir.params); } break; @@ -3428,8 +3651,6 @@ call_stub_destroy_wind (call_stub_t *stub) { GF_FREE ((char *)stub->args.symlink.linkname); loc_wipe (&stub->args.symlink.loc); - if (stub->args.symlink.params) - dict_unref (stub->args.symlink.params); } break; @@ -3621,8 +3842,6 @@ call_stub_destroy_wind (call_stub_t *stub) case GF_FOP_LOOKUP: { loc_wipe (&stub->args.lookup.loc); - if (stub->args.lookup.xattr_req) - dict_unref (stub->args.lookup.xattr_req); break; } @@ -3645,9 +3864,6 @@ call_stub_destroy_wind (call_stub_t *stub) if (stub->args.readdirp.fd) fd_unref (stub->args.readdirp.fd); - if (stub->args.readdirp.dict) - dict_unref (stub->args.readdirp.dict); - break; } @@ -3689,6 +3905,9 @@ call_stub_destroy_wind (call_stub_t *stub) static void call_stub_destroy_unwind (call_stub_t *stub) { + if (stub->xdata) + dict_unref (stub->xdata); + switch (stub->fop) { case GF_FOP_OPEN: { @@ -3845,9 +4064,6 @@ call_stub_destroy_unwind (call_stub_t *stub) { if (stub->args.lookup_cbk.inode) inode_unref (stub->args.lookup_cbk.inode); - - if (stub->args.lookup_cbk.dict) - dict_unref (stub->args.lookup_cbk.dict); } break; diff --git a/libglusterfs/src/call-stub.h b/libglusterfs/src/call-stub.h index 081f6d200..85e04ec69 100644 --- a/libglusterfs/src/call-stub.h +++ b/libglusterfs/src/call-stub.h @@ -34,21 +34,20 @@ typedef struct { char wind; call_frame_t *frame; glusterfs_fop_t fop; - struct mem_pool *stub_mem_pool; /* pointer to stub mempool in glusterfs ctx */ + struct mem_pool *stub_mem_pool; /* pointer to stub mempool in ctx_t */ + dict_t *xdata; /* common accross all the fops */ union { /* lookup */ struct { fop_lookup_t fn; loc_t loc; - dict_t *xattr_req; } lookup; struct { fop_lookup_cbk_t fn; int32_t op_ret, op_errno; inode_t *inode; struct iatt buf; - dict_t *dict; struct iatt postparent; } lookup_cbk; @@ -130,7 +129,7 @@ typedef struct { loc_t loc; mode_t mode; dev_t rdev; - dict_t *params; + mode_t umask; } mknod; struct { fop_mknod_cbk_t fn; @@ -146,7 +145,7 @@ typedef struct { fop_mkdir_t fn; loc_t loc; mode_t mode; - dict_t *params; + mode_t umask; } mkdir; struct { fop_mkdir_cbk_t fn; @@ -161,6 +160,7 @@ typedef struct { struct { fop_unlink_t fn; loc_t loc; + int xflag; } unlink; struct { fop_unlink_cbk_t fn; @@ -187,7 +187,7 @@ typedef struct { fop_symlink_t fn; const char *linkname; loc_t loc; - dict_t *params; + mode_t umask; } symlink; struct { fop_symlink_cbk_t fn; @@ -236,7 +236,7 @@ typedef struct { int32_t flags; mode_t mode; fd_t *fd; - dict_t *params; + mode_t umask; } create; struct { fop_create_cbk_t fn; @@ -254,7 +254,6 @@ typedef struct { loc_t loc; int32_t flags; fd_t *fd; - int32_t wbflags; } open; struct { fop_open_cbk_t fn; @@ -516,7 +515,6 @@ typedef struct { fd_t *fd; size_t size; off_t off; - dict_t *dict; } readdirp; struct { fop_readdirp_cbk_t fn; @@ -603,7 +601,7 @@ call_stub_t * fop_lookup_stub (call_frame_t *frame, fop_lookup_t fn, loc_t *loc, - dict_t *xattr_req); + dict_t *xdata); call_stub_t * fop_lookup_cbk_stub (call_frame_t *frame, @@ -612,34 +610,34 @@ fop_lookup_cbk_stub (call_frame_t *frame, int32_t op_errno, inode_t *inode, struct iatt *buf, - dict_t *dict, + dict_t *xdata, struct iatt *postparent); call_stub_t * fop_stat_stub (call_frame_t *frame, fop_stat_t fn, - loc_t *loc); + loc_t *loc, dict_t *xdata); call_stub_t * fop_stat_cbk_stub (call_frame_t *frame, fop_stat_cbk_t fn, int32_t op_ret, int32_t op_errno, - struct iatt *buf); + struct iatt *buf, dict_t *xdata); call_stub_t * fop_fstat_stub (call_frame_t *frame, fop_fstat_t fn, - fd_t *fd); + fd_t *fd, dict_t *xdata); call_stub_t * fop_fstat_cbk_stub (call_frame_t *frame, fop_fstat_cbk_t fn, int32_t op_ret, int32_t op_errno, - struct iatt *buf); + struct iatt *buf, dict_t *xdata); call_stub_t * fop_truncate_stub (call_frame_t *frame, fop_truncate_t fn, loc_t *loc, - off_t off); + off_t off, dict_t *xdata); call_stub_t * fop_truncate_cbk_stub (call_frame_t *frame, @@ -647,13 +645,13 @@ fop_truncate_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); call_stub_t * fop_ftruncate_stub (call_frame_t *frame, fop_ftruncate_t fn, fd_t *fd, - off_t off); + off_t off, dict_t *xdata); call_stub_t * fop_ftruncate_cbk_stub (call_frame_t *frame, @@ -661,25 +659,25 @@ fop_ftruncate_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); call_stub_t * fop_access_stub (call_frame_t *frame, fop_access_t fn, loc_t *loc, - int32_t mask); + int32_t mask, dict_t *xdata); call_stub_t * fop_access_cbk_stub (call_frame_t *frame, fop_access_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_readlink_stub (call_frame_t *frame, fop_readlink_t fn, loc_t *loc, - size_t size); + size_t size, dict_t *xdata); call_stub_t * fop_readlink_cbk_stub (call_frame_t *frame, @@ -687,11 +685,11 @@ fop_readlink_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, const char *path, - struct iatt *buf); + struct iatt *buf, dict_t *xdata); call_stub_t * -fop_mknod_stub (call_frame_t *frame, fop_mknod_t fn, - loc_t *loc, mode_t mode, dev_t rdev, dict_t *params); +fop_mknod_stub (call_frame_t *frame, fop_mknod_t fn, loc_t *loc, mode_t mode, + dev_t rdev, mode_t umask, dict_t *xdata); call_stub_t * fop_mknod_cbk_stub (call_frame_t *frame, @@ -701,11 +699,11 @@ fop_mknod_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); call_stub_t * -fop_mkdir_stub (call_frame_t *frame, fop_mkdir_t fn, - loc_t *loc, mode_t mode, dict_t *params); +fop_mkdir_stub (call_frame_t *frame, fop_mkdir_t fn, loc_t *loc, mode_t mode, + mode_t umask, dict_t *xdata); call_stub_t * fop_mkdir_cbk_stub (call_frame_t *frame, @@ -715,12 +713,11 @@ fop_mkdir_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); call_stub_t * -fop_unlink_stub (call_frame_t *frame, - fop_unlink_t fn, - loc_t *loc); +fop_unlink_stub (call_frame_t *frame, fop_unlink_t fn, + loc_t *loc, int xflag, dict_t *xdata); call_stub_t * fop_unlink_cbk_stub (call_frame_t *frame, @@ -728,11 +725,11 @@ fop_unlink_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); call_stub_t * fop_rmdir_stub (call_frame_t *frame, fop_rmdir_t fn, - loc_t *loc, int flags); + loc_t *loc, int flags, dict_t *xdata); call_stub_t * fop_rmdir_cbk_stub (call_frame_t *frame, @@ -740,11 +737,11 @@ fop_rmdir_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); call_stub_t * fop_symlink_stub (call_frame_t *frame, fop_symlink_t fn, - const char *linkname, loc_t *loc, dict_t *params); + const char *linkname, loc_t *loc, mode_t umask, dict_t *xdata); call_stub_t * fop_symlink_cbk_stub (call_frame_t *frame, @@ -754,13 +751,13 @@ fop_symlink_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); call_stub_t * fop_rename_stub (call_frame_t *frame, fop_rename_t fn, loc_t *oldloc, - loc_t *newloc); + loc_t *newloc, dict_t *xdata); call_stub_t * fop_rename_cbk_stub (call_frame_t *frame, @@ -771,13 +768,13 @@ fop_rename_cbk_stub (call_frame_t *frame, struct iatt *preoldparent, struct iatt *postoldparent, struct iatt *prenewparent, - struct iatt *postnewparent); + struct iatt *postnewparent, dict_t *xdata); call_stub_t * fop_link_stub (call_frame_t *frame, fop_link_t fn, loc_t *oldloc, - loc_t *newloc); + loc_t *newloc, dict_t *xdata); call_stub_t * fop_link_cbk_stub (call_frame_t *frame, @@ -787,12 +784,12 @@ fop_link_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); call_stub_t * fop_create_stub (call_frame_t *frame, fop_create_t fn, loc_t *loc, int32_t flags, mode_t mode, - fd_t *fd, dict_t *params); + mode_t umask, fd_t *fd, dict_t *xdata); call_stub_t * fop_create_cbk_stub (call_frame_t *frame, @@ -803,7 +800,7 @@ fop_create_cbk_stub (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); call_stub_t * fop_open_stub (call_frame_t *frame, @@ -811,21 +808,21 @@ fop_open_stub (call_frame_t *frame, loc_t *loc, int32_t flags, fd_t *fd, - int32_t wbflags); + dict_t *xdata); call_stub_t * fop_open_cbk_stub (call_frame_t *frame, fop_open_cbk_t fn, int32_t op_ret, int32_t op_errno, - fd_t *fd); + fd_t *fd, dict_t *xdata); call_stub_t * fop_readv_stub (call_frame_t *frame, fop_readv_t fn, fd_t *fd, size_t size, - off_t off, uint32_t flags); + off_t off, uint32_t flags, dict_t *xdata); call_stub_t * fop_readv_cbk_stub (call_frame_t *frame, @@ -835,7 +832,7 @@ fop_readv_cbk_stub (call_frame_t *frame, struct iovec *vector, int32_t count, struct iatt *stbuf, - struct iobref *iobref); + struct iobref *iobref, dict_t *xdata); call_stub_t * fop_writev_stub (call_frame_t *frame, @@ -844,7 +841,7 @@ fop_writev_stub (call_frame_t *frame, struct iovec *vector, int32_t count, off_t off, uint32_t flags, - struct iobref *iobref); + struct iobref *iobref, dict_t *xdata); call_stub_t * fop_writev_cbk_stub (call_frame_t *frame, @@ -852,24 +849,24 @@ fop_writev_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); call_stub_t * fop_flush_stub (call_frame_t *frame, fop_flush_t fn, - fd_t *fd); + fd_t *fd, dict_t *xdata); call_stub_t * fop_flush_cbk_stub (call_frame_t *frame, fop_flush_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_fsync_stub (call_frame_t *frame, fop_fsync_t fn, fd_t *fd, - int32_t datasync); + int32_t datasync, dict_t *xdata); call_stub_t * fop_fsync_cbk_stub (call_frame_t *frame, @@ -877,177 +874,177 @@ fop_fsync_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); call_stub_t * fop_opendir_stub (call_frame_t *frame, fop_opendir_t fn, - loc_t *loc, fd_t *fd); + loc_t *loc, fd_t *fd, dict_t *xdata); call_stub_t * fop_opendir_cbk_stub (call_frame_t *frame, fop_opendir_cbk_t fn, int32_t op_ret, int32_t op_errno, - fd_t *fd); + fd_t *fd, dict_t *xdata); call_stub_t * fop_fsyncdir_stub (call_frame_t *frame, fop_fsyncdir_t fn, fd_t *fd, - int32_t datasync); + int32_t datasync, dict_t *xdata); call_stub_t * fop_fsyncdir_cbk_stub (call_frame_t *frame, fop_fsyncdir_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_statfs_stub (call_frame_t *frame, fop_statfs_t fn, - loc_t *loc); + loc_t *loc, dict_t *xdata); call_stub_t * fop_statfs_cbk_stub (call_frame_t *frame, fop_statfs_cbk_t fn, int32_t op_ret, int32_t op_errno, - struct statvfs *buf); + struct statvfs *buf, dict_t *xdata); call_stub_t * fop_setxattr_stub (call_frame_t *frame, fop_setxattr_t fn, loc_t *loc, dict_t *dict, - int32_t flags); + int32_t flags, dict_t *xdata); call_stub_t * fop_setxattr_cbk_stub (call_frame_t *frame, fop_setxattr_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_getxattr_stub (call_frame_t *frame, fop_getxattr_t fn, loc_t *loc, - const char *name); + const char *name, dict_t *xdata); call_stub_t * fop_getxattr_cbk_stub (call_frame_t *frame, fop_getxattr_cbk_t fn, int32_t op_ret, int32_t op_errno, - dict_t *value); + dict_t *value, dict_t *xdata); call_stub_t * fop_fsetxattr_stub (call_frame_t *frame, fop_fsetxattr_t fn, fd_t *fd, dict_t *dict, - int32_t flags); + int32_t flags, dict_t *xdata); call_stub_t * fop_fsetxattr_cbk_stub (call_frame_t *frame, fop_fsetxattr_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_fgetxattr_stub (call_frame_t *frame, fop_fgetxattr_t fn, fd_t *fd, - const char *name); + const char *name, dict_t *xdata); call_stub_t * fop_fgetxattr_cbk_stub (call_frame_t *frame, fop_fgetxattr_cbk_t fn, int32_t op_ret, int32_t op_errno, - dict_t *value); + dict_t *value, dict_t *xdata); call_stub_t * fop_removexattr_stub (call_frame_t *frame, fop_removexattr_t fn, loc_t *loc, - const char *name); + const char *name, dict_t *xdata); call_stub_t * fop_removexattr_cbk_stub (call_frame_t *frame, fop_removexattr_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_fremovexattr_stub (call_frame_t *frame, fop_fremovexattr_t fn, fd_t *fd, - const char *name); + const char *name, dict_t *xdata); call_stub_t * fop_fremovexattr_cbk_stub (call_frame_t *frame, fop_fremovexattr_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_lk_stub (call_frame_t *frame, fop_lk_t fn, fd_t *fd, int32_t cmd, - struct gf_flock *lock); + struct gf_flock *lock, dict_t *xdata); call_stub_t * fop_lk_cbk_stub (call_frame_t *frame, fop_lk_cbk_t fn, int32_t op_ret, int32_t op_errno, - struct gf_flock *lock); + struct gf_flock *lock, dict_t *xdata); call_stub_t * fop_inodelk_stub (call_frame_t *frame, fop_inodelk_t fn, const char *volume, loc_t *loc, int32_t cmd, - struct gf_flock *lock); + struct gf_flock *lock, dict_t *xdata); call_stub_t * fop_finodelk_stub (call_frame_t *frame, fop_finodelk_t fn, const char *volume, fd_t *fd, int32_t cmd, - struct gf_flock *lock); + struct gf_flock *lock, dict_t *xdata); call_stub_t * fop_entrylk_stub (call_frame_t *frame, fop_entrylk_t fn, const char *volume, loc_t *loc, const char *basename, - entrylk_cmd cmd, entrylk_type type); + entrylk_cmd cmd, entrylk_type type, dict_t *xdata); call_stub_t * fop_fentrylk_stub (call_frame_t *frame, fop_fentrylk_t fn, const char *volume, fd_t *fd, const char *basename, - entrylk_cmd cmd, entrylk_type type); + entrylk_cmd cmd, entrylk_type type, dict_t *xdata); call_stub_t * fop_inodelk_cbk_stub (call_frame_t *frame, fop_inodelk_cbk_t fn, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); call_stub_t * fop_finodelk_cbk_stub (call_frame_t *frame, fop_inodelk_cbk_t fn, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); call_stub_t * fop_entrylk_cbk_stub (call_frame_t *frame, fop_entrylk_cbk_t fn, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); call_stub_t * fop_fentrylk_cbk_stub (call_frame_t *frame, fop_entrylk_cbk_t fn, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); call_stub_t * fop_readdir_stub (call_frame_t *frame, fop_readdir_t fn, fd_t *fd, size_t size, - off_t off); + off_t off, dict_t *xdata); call_stub_t * fop_readdirp_stub (call_frame_t *frame, @@ -1055,27 +1052,27 @@ fop_readdirp_stub (call_frame_t *frame, fd_t *fd, size_t size, off_t off, - dict_t *dict); + dict_t *xdata); call_stub_t * fop_readdirp_cbk_stub (call_frame_t *frame, fop_readdir_cbk_t fn, int32_t op_ret, int32_t op_errno, - gf_dirent_t *entries); + gf_dirent_t *entries, dict_t *xdata); call_stub_t * fop_readdir_cbk_stub (call_frame_t *frame, fop_readdir_cbk_t fn, int32_t op_ret, int32_t op_errno, - gf_dirent_t *entries); + gf_dirent_t *entries, dict_t *xdata); call_stub_t * fop_rchecksum_stub (call_frame_t *frame, fop_rchecksum_t fn, fd_t *fd, off_t offset, - int32_t len); + int32_t len, dict_t *xdata); call_stub_t * fop_rchecksum_cbk_stub (call_frame_t *frame, @@ -1083,40 +1080,40 @@ fop_rchecksum_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, uint32_t weak_checksum, - uint8_t *strong_checksum); + uint8_t *strong_checksum, dict_t *xdata); call_stub_t * fop_xattrop_stub (call_frame_t *frame, fop_xattrop_t fn, loc_t *loc, gf_xattrop_flags_t optype, - dict_t *xattr); + dict_t *xattr, dict_t *xdata); call_stub_t * fop_xattrop_stub_cbk_stub (call_frame_t *frame, fop_xattrop_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_fxattrop_stub (call_frame_t *frame, fop_fxattrop_t fn, fd_t *fd, gf_xattrop_flags_t optype, - dict_t *xattr); + dict_t *xattr, dict_t *xdata); call_stub_t * fop_fxattrop_stub_cbk_stub (call_frame_t *frame, fop_xattrop_cbk_t fn, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); call_stub_t * fop_setattr_stub (call_frame_t *frame, fop_setattr_t fn, loc_t *loc, struct iatt *stbuf, - int32_t valid); + int32_t valid, dict_t *xdata); call_stub_t * fop_setattr_cbk_stub (call_frame_t *frame, @@ -1124,14 +1121,14 @@ fop_setattr_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *statpre, - struct iatt *statpost); + struct iatt *statpost, dict_t *xdata); call_stub_t * fop_fsetattr_stub (call_frame_t *frame, fop_fsetattr_t fn, fd_t *fd, struct iatt *stbuf, - int32_t valid); + int32_t valid, dict_t *xdata); call_stub_t * fop_fsetattr_cbk_stub (call_frame_t *frame, @@ -1139,7 +1136,7 @@ fop_fsetattr_cbk_stub (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *statpre, - struct iatt *statpost); + struct iatt *statpost, dict_t *xdata); void call_resume (call_stub_t *stub); void call_stub_destroy (call_stub_t *stub); diff --git a/libglusterfs/src/defaults.c b/libglusterfs/src/defaults.c index 387e91017..a3f506d9b 100644 --- a/libglusterfs/src/defaults.c +++ b/libglusterfs/src/defaults.c @@ -41,18 +41,19 @@ int32_t default_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, - struct iatt *buf, dict_t *dict, struct iatt *postparent) + struct iatt *buf, dict_t *xdata, struct iatt *postparent) { STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, buf, - dict, postparent); + xdata, postparent); return 0; } int32_t default_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct iatt *buf) + int32_t op_ret, int32_t op_errno, struct iatt *buf, + dict_t *xdata) { - STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf); + STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf, xdata); return 0; } @@ -60,37 +61,41 @@ default_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t default_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, + dict_t *xdata) { STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno, prebuf, - postbuf); + postbuf, xdata); return 0; } int32_t default_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, + dict_t *xdata) { STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno, prebuf, - postbuf); + postbuf, xdata); return 0; } int32_t default_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (access, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (access, frame, op_ret, op_errno, xdata); return 0; } int32_t default_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, const char *path, - struct iatt *buf) + struct iatt *buf, dict_t *xdata) { - STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, path, buf); + STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, path, buf, + xdata); return 0; } @@ -99,10 +104,10 @@ int32_t default_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { STACK_UNWIND_STRICT (mknod, frame, op_ret, op_errno, inode, - buf, preparent, postparent); + buf, preparent, postparent, xdata); return 0; } @@ -110,30 +115,31 @@ int32_t default_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { STACK_UNWIND_STRICT (mkdir, frame, op_ret, op_errno, inode, - buf, preparent, postparent); + buf, preparent, postparent, xdata); return 0; } int32_t default_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { STACK_UNWIND_STRICT (unlink, frame, op_ret, op_errno, preparent, - postparent); + postparent, xdata); return 0; } int32_t default_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, + dict_t *xdata) { STACK_UNWIND_STRICT (rmdir, frame, op_ret, op_errno, preparent, - postparent); + postparent, xdata); return 0; } @@ -142,10 +148,10 @@ int32_t default_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { STACK_UNWIND_STRICT (symlink, frame, op_ret, op_errno, inode, buf, - preparent, postparent); + preparent, postparent, xdata); return 0; } @@ -154,10 +160,11 @@ int32_t default_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *buf, struct iatt *preoldparent, struct iatt *postoldparent, - struct iatt *prenewparent, struct iatt *postnewparent) + struct iatt *prenewparent, struct iatt *postnewparent, + dict_t *xdata) { STACK_UNWIND_STRICT (rename, frame, op_ret, op_errno, buf, preoldparent, - postoldparent, prenewparent, postnewparent); + postoldparent, prenewparent, postnewparent, xdata); return 0; } @@ -166,10 +173,11 @@ int32_t default_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, + dict_t *xdata) { STACK_UNWIND_STRICT (link, frame, op_ret, op_errno, inode, buf, - preparent, postparent); + preparent, postparent, xdata); return 0; } @@ -178,28 +186,31 @@ int32_t default_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, + dict_t *xdata) { STACK_UNWIND_STRICT (create, frame, op_ret, op_errno, fd, inode, buf, - preparent, postparent); + preparent, postparent, xdata); return 0; } int32_t default_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, fd_t *fd) + int32_t op_ret, int32_t op_errno, fd_t *fd, + dict_t *xdata) { - STACK_UNWIND_STRICT (open, frame, op_ret, op_errno, fd); + STACK_UNWIND_STRICT (open, frame, op_ret, op_errno, fd, xdata); return 0; } int32_t default_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iovec *vector, - int32_t count, struct iatt *stbuf, struct iobref *iobref) + int32_t count, struct iatt *stbuf, struct iobref *iobref, + dict_t *xdata) { STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno, vector, count, - stbuf, iobref); + stbuf, iobref, xdata); return 0; } @@ -207,18 +218,20 @@ default_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t default_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, + dict_t *xdata) { - STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf); + STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf, xdata); return 0; } int32_t default_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno, xdata); return 0; } @@ -227,59 +240,67 @@ default_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t default_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, + dict_t *xdata) { - STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf); + STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf, + xdata); return 0; } int32_t default_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct iatt *buf) + int32_t op_ret, int32_t op_errno, struct iatt *buf, + dict_t *xdata) { - STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf); + STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf, xdata); return 0; } int32_t default_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, fd_t *fd) + int32_t op_ret, int32_t op_errno, fd_t *fd, + dict_t *xdata) { - STACK_UNWIND_STRICT (opendir, frame, op_ret, op_errno, fd); + STACK_UNWIND_STRICT (opendir, frame, op_ret, op_errno, fd, xdata); return 0; } int32_t default_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (fsyncdir, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (fsyncdir, frame, op_ret, op_errno, xdata); return 0; } int32_t default_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct statvfs *buf) + int32_t op_ret, int32_t op_errno, struct statvfs *buf, + dict_t *xdata) { - STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf); + STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf, xdata); return 0; } int32_t default_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno, xdata); return 0; } int32_t default_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (fsetxattr, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (fsetxattr, frame, op_ret, op_errno, xdata); return 0; } @@ -287,93 +308,104 @@ default_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t default_fgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *dict) + int32_t op_ret, int32_t op_errno, dict_t *dict, + dict_t *xdata) { - STACK_UNWIND_STRICT (fgetxattr, frame, op_ret, op_errno, dict); + STACK_UNWIND_STRICT (fgetxattr, frame, op_ret, op_errno, dict, xdata); return 0; } int32_t default_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *dict) + int32_t op_ret, int32_t op_errno, dict_t *dict, + dict_t *xdata) { - STACK_UNWIND_STRICT (getxattr, frame, op_ret, op_errno, dict); + STACK_UNWIND_STRICT (getxattr, frame, op_ret, op_errno, dict, xdata); return 0; } int32_t default_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *dict) + int32_t op_ret, int32_t op_errno, dict_t *dict, + dict_t *xdata) { - STACK_UNWIND_STRICT (xattrop, frame, op_ret, op_errno, dict); + STACK_UNWIND_STRICT (xattrop, frame, op_ret, op_errno, dict, xdata); return 0; } int32_t default_fxattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *dict) + int32_t op_ret, int32_t op_errno, dict_t *dict, + dict_t *xdata) { - STACK_UNWIND_STRICT (fxattrop, frame, op_ret, op_errno, dict); + STACK_UNWIND_STRICT (fxattrop, frame, op_ret, op_errno, dict, xdata); return 0; } int32_t default_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (removexattr, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (removexattr, frame, op_ret, op_errno, xdata); return 0; } int32_t default_fremovexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (fremovexattr, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (fremovexattr, frame, op_ret, op_errno, xdata); return 0; } int32_t default_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct gf_flock *lock) + int32_t op_ret, int32_t op_errno, struct gf_flock *lock, + dict_t *xdata) { - STACK_UNWIND_STRICT (lk, frame, op_ret, op_errno, lock); + STACK_UNWIND_STRICT (lk, frame, op_ret, op_errno, lock, xdata); return 0; } int32_t default_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (inodelk, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (inodelk, frame, op_ret, op_errno, xdata); return 0; } int32_t default_finodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (finodelk, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (finodelk, frame, op_ret, op_errno, xdata); return 0; } int32_t default_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (entrylk, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (entrylk, frame, op_ret, op_errno, xdata); return 0; } int32_t default_fentrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno) + int32_t op_ret, int32_t op_errno, + dict_t *xdata) { - STACK_UNWIND_STRICT (fentrylk, frame, op_ret, op_errno); + STACK_UNWIND_STRICT (fentrylk, frame, op_ret, op_errno, xdata); return 0; } @@ -381,48 +413,53 @@ default_fentrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t default_rchecksum_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, uint32_t weak_checksum, - uint8_t *strong_checksum) + uint8_t *strong_checksum, + dict_t *xdata) { STACK_UNWIND_STRICT (rchecksum, frame, op_ret, op_errno, weak_checksum, - strong_checksum); + strong_checksum, xdata); return 0; } int32_t default_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, gf_dirent_t *entries) + int32_t op_ret, int32_t op_errno, gf_dirent_t *entries, + dict_t *xdata) { - STACK_UNWIND_STRICT (readdir, frame, op_ret, op_errno, entries); + STACK_UNWIND_STRICT (readdir, frame, op_ret, op_errno, entries, xdata); return 0; } int32_t default_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, gf_dirent_t *entries) + int32_t op_ret, int32_t op_errno, gf_dirent_t *entries, + dict_t *xdata) { - STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, entries); + STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, entries, xdata); return 0; } int32_t default_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *statpre, - struct iatt *statpost) + struct iatt *statpost, + dict_t *xdata) { STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, statpre, - statpost); + statpost, xdata); return 0; } int32_t default_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *statpre, - struct iatt *statpost) + struct iatt *statpost, + dict_t *xdata) { STACK_UNWIND_STRICT (fsetattr, frame, op_ret, op_errno, statpre, - statpost); + statpost, xdata); return 0; } @@ -438,266 +475,271 @@ default_getspec_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t default_fgetxattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name) + const char *name, dict_t *xdata) { STACK_WIND (frame, default_fgetxattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fgetxattr, fd, name); + FIRST_CHILD(this)->fops->fgetxattr, fd, name, xdata); return 0; } int32_t default_fsetxattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - dict_t *dict, int32_t flags) + dict_t *dict, int32_t flags, dict_t *xdata) { STACK_WIND (frame, default_fsetxattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fsetxattr, fd, dict, flags); + FIRST_CHILD(this)->fops->fsetxattr, fd, dict, flags, xdata); return 0; } int32_t default_setxattr_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *dict, int32_t flags) + dict_t *dict, int32_t flags, dict_t *xdata) { STACK_WIND (frame, default_setxattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->setxattr, loc, dict, flags); + FIRST_CHILD(this)->fops->setxattr, loc, dict, flags, xdata); return 0; } int32_t -default_statfs_resume (call_frame_t *frame, xlator_t *this, loc_t *loc) +default_statfs_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) { STACK_WIND (frame, default_statfs_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->statfs, loc); + FIRST_CHILD(this)->fops->statfs, loc, xdata); return 0; } int32_t default_fsyncdir_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t flags) + int32_t flags, dict_t *xdata) { STACK_WIND (frame, default_fsyncdir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fsyncdir, fd, flags); + FIRST_CHILD(this)->fops->fsyncdir, fd, flags, xdata); return 0; } int32_t default_opendir_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - fd_t *fd) + fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_opendir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->opendir, loc, fd); + FIRST_CHILD(this)->fops->opendir, loc, fd, xdata); return 0; } int32_t -default_fstat_resume (call_frame_t *frame, xlator_t *this, fd_t *fd) +default_fstat_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_fstat_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fstat, fd); + FIRST_CHILD(this)->fops->fstat, fd, xdata); return 0; } int32_t default_fsync_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t flags) + int32_t flags, dict_t *xdata) { STACK_WIND (frame, default_fsync_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fsync, fd, flags); + FIRST_CHILD(this)->fops->fsync, fd, flags, xdata); return 0; } int32_t -default_flush_resume (call_frame_t *frame, xlator_t *this, fd_t *fd) +default_flush_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_flush_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->flush, fd); + FIRST_CHILD(this)->fops->flush, fd, xdata); return 0; } int32_t default_writev_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iovec *vector, int32_t count, off_t off, - uint32_t flags, struct iobref *iobref) + uint32_t flags, struct iobref *iobref, dict_t *xdata) { STACK_WIND (frame, default_writev_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->writev, fd, vector, count, off, - flags, iobref); + flags, iobref, xdata); return 0; } int32_t default_readv_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t offset, uint32_t flags) + size_t size, off_t offset, uint32_t flags, dict_t *xdata) { STACK_WIND (frame, default_readv_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->readv, fd, size, offset, flags); + FIRST_CHILD(this)->fops->readv, fd, size, offset, flags, xdata); return 0; } int32_t default_open_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - int32_t flags, fd_t *fd, int32_t wbflags) + int32_t flags, fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_open_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->open, loc, flags, fd, wbflags); + FIRST_CHILD(this)->fops->open, loc, flags, fd, xdata); return 0; } int32_t default_create_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - int32_t flags, mode_t mode, fd_t *fd, dict_t *params) + int32_t flags, mode_t mode, mode_t umask, fd_t *fd, + dict_t *xdata) { STACK_WIND (frame, default_create_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->create, loc, flags, mode, fd, - params); + FIRST_CHILD(this)->fops->create, loc, flags, mode, umask, + fd, xdata); return 0; } int32_t default_link_resume (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc) + loc_t *newloc, dict_t *xdata) { STACK_WIND (frame, default_link_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->link, oldloc, newloc); + FIRST_CHILD(this)->fops->link, oldloc, newloc, xdata); return 0; } int32_t default_rename_resume (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc) + loc_t *newloc, dict_t *xdata) { STACK_WIND (frame, default_rename_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->rename, oldloc, newloc); + FIRST_CHILD(this)->fops->rename, oldloc, newloc, xdata); return 0; } int default_symlink_resume (call_frame_t *frame, xlator_t *this, - const char *linkpath, loc_t *loc, dict_t *params) + const char *linkpath, loc_t *loc, mode_t umask, + dict_t *xdata) { STACK_WIND (frame, default_symlink_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->symlink, linkpath, loc, params); + FIRST_CHILD(this)->fops->symlink, linkpath, loc, umask, + xdata); return 0; } int32_t default_rmdir_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - int flags) + int flags, dict_t *xdata) { STACK_WIND (frame, default_rmdir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->rmdir, loc, flags); + FIRST_CHILD(this)->fops->rmdir, loc, flags, xdata); return 0; } int32_t -default_unlink_resume (call_frame_t *frame, xlator_t *this, loc_t *loc) +default_unlink_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, + int xflag, dict_t *xdata) { STACK_WIND (frame, default_unlink_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->unlink, loc); + FIRST_CHILD(this)->fops->unlink, loc, xflag, xdata); return 0; } int default_mkdir_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - mode_t mode, dict_t *params) + mode_t mode, mode_t umask, dict_t *xdata) { STACK_WIND (frame, default_mkdir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->mkdir, loc, mode, params); + FIRST_CHILD(this)->fops->mkdir, loc, mode, umask, xdata); return 0; } int default_mknod_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - mode_t mode, dev_t rdev, dict_t *parms) + mode_t mode, dev_t rdev, mode_t umask, dict_t *xdata) { STACK_WIND (frame, default_mknod_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, parms); + FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, umask, + xdata); return 0; } int32_t default_readlink_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - size_t size) + size_t size, dict_t *xdata) { STACK_WIND (frame, default_readlink_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->readlink, loc, size); + FIRST_CHILD(this)->fops->readlink, loc, size, xdata); return 0; } int32_t default_access_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - int32_t mask) + int32_t mask, dict_t *xdata) { STACK_WIND (frame, default_access_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->access, loc, mask); + FIRST_CHILD(this)->fops->access, loc, mask, xdata); return 0; } int32_t default_ftruncate_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - off_t offset) + off_t offset, dict_t *xdata) { STACK_WIND (frame, default_ftruncate_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->ftruncate, fd, offset); + FIRST_CHILD(this)->fops->ftruncate, fd, offset, xdata); return 0; } int32_t default_getxattr_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name) + const char *name, dict_t *xdata) { STACK_WIND (frame, default_getxattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->getxattr, loc, name); + FIRST_CHILD(this)->fops->getxattr, loc, name, xdata); return 0; } int32_t default_xattrop_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - gf_xattrop_flags_t flags, dict_t *dict) + gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) { STACK_WIND (frame, default_xattrop_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->xattrop, loc, flags, dict); + FIRST_CHILD(this)->fops->xattrop, loc, flags, dict, xdata); return 0; } int32_t default_fxattrop_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - gf_xattrop_flags_t flags, dict_t *dict) + gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) { STACK_WIND (frame, default_fxattrop_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fxattrop, fd, flags, dict); + FIRST_CHILD(this)->fops->fxattrop, fd, flags, dict, xdata); return 0; } int32_t default_removexattr_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name) + const char *name, dict_t *xdata) { STACK_WIND (frame, default_removexattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->removexattr, loc, name); + FIRST_CHILD(this)->fops->removexattr, loc, name, xdata); return 0; } int32_t default_fremovexattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name) + const char *name, dict_t *xdata) { STACK_WIND (frame, default_fremovexattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fremovexattr, fd, name); + FIRST_CHILD(this)->fops->fremovexattr, fd, name, xdata); return 0; } int32_t default_lk_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t cmd, struct gf_flock *lock) + int32_t cmd, struct gf_flock *lock, dict_t *xdata) { STACK_WIND (frame, default_lk_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->lk, fd, cmd, lock); + FIRST_CHILD(this)->fops->lk, fd, cmd, lock, xdata); return 0; } @@ -705,117 +747,127 @@ default_lk_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t default_inodelk_resume (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, int32_t cmd, - struct gf_flock *lock) + struct gf_flock *lock, + dict_t *xdata) { STACK_WIND (frame, default_inodelk_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->inodelk, - volume, loc, cmd, lock); + volume, loc, cmd, lock, xdata); return 0; } int32_t default_finodelk_resume (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, int32_t cmd, - struct gf_flock *lock) + struct gf_flock *lock, + dict_t *xdata) { STACK_WIND (frame, default_finodelk_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->finodelk, - volume, fd, cmd, lock); + volume, fd, cmd, lock, xdata); return 0; } int32_t default_entrylk_resume (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, const char *basename, - entrylk_cmd cmd, entrylk_type type) + entrylk_cmd cmd, entrylk_type type, + dict_t *xdata) { STACK_WIND (frame, default_entrylk_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->entrylk, - volume, loc, basename, cmd, type); + volume, loc, basename, cmd, type, xdata); return 0; } int32_t default_fentrylk_resume (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, const char *basename, - entrylk_cmd cmd, entrylk_type type) + entrylk_cmd cmd, entrylk_type type, + dict_t *xdata) { STACK_WIND (frame, default_fentrylk_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->fentrylk, - volume, fd, basename, cmd, type); + volume, fd, basename, cmd, type, xdata); return 0; } int32_t default_rchecksum_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - off_t offset, int32_t len) + off_t offset, int32_t len, + dict_t *xdata) { STACK_WIND (frame, default_rchecksum_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->rchecksum, fd, offset, len); + FIRST_CHILD(this)->fops->rchecksum, fd, offset, len, xdata); return 0; } int32_t default_readdir_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off) + size_t size, off_t off, + dict_t *xdata) { STACK_WIND (frame, default_readdir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->readdir, fd, size, off); + FIRST_CHILD(this)->fops->readdir, fd, size, off, xdata); return 0; } int32_t default_readdirp_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off, dict_t *dict) + size_t size, off_t off, dict_t *xdata) { STACK_WIND (frame, default_readdirp_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->readdirp, fd, size, off, dict); + FIRST_CHILD(this)->fops->readdirp, fd, size, off, xdata); return 0; } int32_t default_setattr_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - struct iatt *stbuf, int32_t valid) + struct iatt *stbuf, int32_t valid, + dict_t *xdata) { STACK_WIND (frame, default_setattr_cbk, FIRST_CHILD (this), - FIRST_CHILD (this)->fops->setattr, loc, stbuf, valid); + FIRST_CHILD (this)->fops->setattr, loc, stbuf, valid, xdata); return 0; } int32_t default_truncate_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - off_t offset) + off_t offset, + dict_t *xdata) { STACK_WIND (frame, default_truncate_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->truncate, loc, offset); + FIRST_CHILD(this)->fops->truncate, loc, offset, xdata); return 0; } int32_t -default_stat_resume (call_frame_t *frame, xlator_t *this, loc_t *loc) +default_stat_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, + dict_t *xdata) { STACK_WIND (frame, default_stat_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->stat, loc); + FIRST_CHILD(this)->fops->stat, loc, xdata); return 0; } int32_t default_lookup_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *xattr_req) + dict_t *xdata) { STACK_WIND (frame, default_lookup_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->lookup, loc, xattr_req); + FIRST_CHILD(this)->fops->lookup, loc, xdata); return 0; } int32_t default_fsetattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - struct iatt *stbuf, int32_t valid) + struct iatt *stbuf, int32_t valid, + dict_t *xdata) { STACK_WIND (frame, default_fsetattr_cbk, FIRST_CHILD (this), - FIRST_CHILD (this)->fops->fsetattr, fd, stbuf, valid); + FIRST_CHILD (this)->fops->fsetattr, fd, stbuf, valid, xdata); return 0; } @@ -823,258 +875,263 @@ default_fsetattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t default_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name) + const char *name, dict_t *xdata) { STACK_WIND (frame, default_fgetxattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fgetxattr, fd, name); + FIRST_CHILD(this)->fops->fgetxattr, fd, name, xdata); return 0; } int32_t default_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict, - int32_t flags) + int32_t flags, dict_t *xdata) { STACK_WIND (frame, default_fsetxattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fsetxattr, fd, dict, flags); + FIRST_CHILD(this)->fops->fsetxattr, fd, dict, flags, xdata); return 0; } int32_t default_setxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict, - int32_t flags) + int32_t flags, dict_t *xdata) { STACK_WIND (frame, default_setxattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->setxattr, loc, dict, flags); + FIRST_CHILD(this)->fops->setxattr, loc, dict, flags, xdata); return 0; } int32_t -default_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc) +default_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) { STACK_WIND (frame, default_statfs_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->statfs, loc); + FIRST_CHILD(this)->fops->statfs, loc, xdata); return 0; } int32_t -default_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags) +default_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, dict_t *xdata) { STACK_WIND (frame, default_fsyncdir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fsyncdir, fd, flags); + FIRST_CHILD(this)->fops->fsyncdir, fd, flags, xdata); return 0; } int32_t -default_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd) +default_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_opendir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->opendir, loc, fd); + FIRST_CHILD(this)->fops->opendir, loc, fd, xdata); return 0; } int32_t -default_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd) +default_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_fstat_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fstat, fd); + FIRST_CHILD(this)->fops->fstat, fd, xdata); return 0; } int32_t -default_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags) +default_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, dict_t *xdata) { STACK_WIND (frame, default_fsync_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fsync, fd, flags); + FIRST_CHILD(this)->fops->fsync, fd, flags, xdata); return 0; } int32_t -default_flush (call_frame_t *frame, xlator_t *this, fd_t *fd) +default_flush (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_flush_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->flush, fd); + FIRST_CHILD(this)->fops->flush, fd, xdata); return 0; } int32_t default_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iovec *vector, int32_t count, off_t off, uint32_t flags, - struct iobref *iobref) + struct iobref *iobref, dict_t *xdata) { STACK_WIND (frame, default_writev_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->writev, fd, vector, count, off, - flags, iobref); + flags, iobref, xdata); return 0; } int32_t default_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, - off_t offset, uint32_t flags) + off_t offset, uint32_t flags, dict_t *xdata) { STACK_WIND (frame, default_readv_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->readv, fd, size, offset, flags); + FIRST_CHILD(this)->fops->readv, fd, size, offset, flags, xdata); return 0; } int32_t default_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, - fd_t *fd, int32_t wbflags) + fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_open_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->open, loc, flags, fd, wbflags); + FIRST_CHILD(this)->fops->open, loc, flags, fd, xdata); return 0; } int32_t default_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, - mode_t mode, fd_t *fd, dict_t *params) + mode_t mode, mode_t umask, fd_t *fd, dict_t *xdata) { STACK_WIND (frame, default_create_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->create, loc, flags, mode, fd, - params); + FIRST_CHILD(this)->fops->create, loc, flags, mode, umask, + fd, xdata); return 0; } int32_t -default_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc) +default_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, + dict_t *xdata) { STACK_WIND (frame, default_link_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->link, oldloc, newloc); + FIRST_CHILD(this)->fops->link, oldloc, newloc, xdata); return 0; } int32_t default_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc) + loc_t *newloc, dict_t *xdata) { STACK_WIND (frame, default_rename_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->rename, oldloc, newloc); + FIRST_CHILD(this)->fops->rename, oldloc, newloc, xdata); return 0; } int default_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath, - loc_t *loc, dict_t *params) + loc_t *loc, mode_t umask, dict_t *xdata) { STACK_WIND (frame, default_symlink_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->symlink, linkpath, loc, params); + FIRST_CHILD(this)->fops->symlink, linkpath, loc, umask, + xdata); return 0; } int32_t -default_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags) +default_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, + dict_t *xdata) { STACK_WIND (frame, default_rmdir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->rmdir, loc, flags); + FIRST_CHILD(this)->fops->rmdir, loc, flags, xdata); return 0; } int32_t -default_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc) +default_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag, + dict_t *xdata) { STACK_WIND (frame, default_unlink_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->unlink, loc); + FIRST_CHILD(this)->fops->unlink, loc, xflag, xdata); return 0; } int default_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, - dict_t *params) + mode_t umask, dict_t *xdata) { STACK_WIND (frame, default_mkdir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->mkdir, loc, mode, params); + FIRST_CHILD(this)->fops->mkdir, loc, mode, umask, xdata); return 0; } int default_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, - dev_t rdev, dict_t *parms) + dev_t rdev, mode_t umask, dict_t *xdata) { STACK_WIND (frame, default_mknod_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, parms); + FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, umask, + xdata); return 0; } int32_t -default_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size) +default_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size, dict_t *xdata) { STACK_WIND (frame, default_readlink_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->readlink, loc, size); + FIRST_CHILD(this)->fops->readlink, loc, size, xdata); return 0; } int32_t -default_access (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask) +default_access (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask, dict_t *xdata) { STACK_WIND (frame, default_access_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->access, loc, mask); + FIRST_CHILD(this)->fops->access, loc, mask, xdata); return 0; } int32_t -default_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset) +default_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, dict_t *xdata) { STACK_WIND (frame, default_ftruncate_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->ftruncate, fd, offset); + FIRST_CHILD(this)->fops->ftruncate, fd, offset, xdata); return 0; } int32_t default_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name) + const char *name, dict_t *xdata) { STACK_WIND (frame, default_getxattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->getxattr, loc, name); + FIRST_CHILD(this)->fops->getxattr, loc, name, xdata); return 0; } int32_t default_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, - gf_xattrop_flags_t flags, dict_t *dict) + gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) { STACK_WIND (frame, default_xattrop_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->xattrop, loc, flags, dict); + FIRST_CHILD(this)->fops->xattrop, loc, flags, dict, xdata); return 0; } int32_t default_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd, - gf_xattrop_flags_t flags, dict_t *dict) + gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) { STACK_WIND (frame, default_fxattrop_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fxattrop, fd, flags, dict); + FIRST_CHILD(this)->fops->fxattrop, fd, flags, dict, xdata); return 0; } int32_t default_removexattr (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name) + const char *name, dict_t *xdata) { STACK_WIND (frame, default_removexattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->removexattr, loc, name); + FIRST_CHILD(this)->fops->removexattr, loc, name, xdata); return 0; } int32_t default_fremovexattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name) + const char *name, dict_t *xdata) { STACK_WIND (frame, default_fremovexattr_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->fremovexattr, fd, name); + FIRST_CHILD(this)->fops->fremovexattr, fd, name, xdata); return 0; } int32_t default_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t cmd, struct gf_flock *lock) + int32_t cmd, struct gf_flock *lock, dict_t *xdata) { STACK_WIND (frame, default_lk_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->lk, fd, cmd, lock); + FIRST_CHILD(this)->fops->lk, fd, cmd, lock, xdata); return 0; } @@ -1082,115 +1139,125 @@ default_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t default_inodelk (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, int32_t cmd, - struct gf_flock *lock) + struct gf_flock *lock, + dict_t *xdata) { STACK_WIND (frame, default_inodelk_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->inodelk, - volume, loc, cmd, lock); + volume, loc, cmd, lock, xdata); return 0; } int32_t default_finodelk (call_frame_t *frame, xlator_t *this, - const char *volume, fd_t *fd, int32_t cmd, struct gf_flock *lock) + const char *volume, fd_t *fd, int32_t cmd, struct gf_flock *lock, + dict_t *xdata) { STACK_WIND (frame, default_finodelk_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->finodelk, - volume, fd, cmd, lock); + volume, fd, cmd, lock, xdata); return 0; } int32_t default_entrylk (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, const char *basename, - entrylk_cmd cmd, entrylk_type type) + entrylk_cmd cmd, entrylk_type type, + dict_t *xdata) { STACK_WIND (frame, default_entrylk_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->entrylk, - volume, loc, basename, cmd, type); + volume, loc, basename, cmd, type, xdata); return 0; } int32_t default_fentrylk (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, const char *basename, - entrylk_cmd cmd, entrylk_type type) + entrylk_cmd cmd, entrylk_type type, + dict_t *xdata) { STACK_WIND (frame, default_fentrylk_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->fentrylk, - volume, fd, basename, cmd, type); + volume, fd, basename, cmd, type, xdata); return 0; } int32_t default_rchecksum (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - int32_t len) + int32_t len, + dict_t *xdata) { STACK_WIND (frame, default_rchecksum_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->rchecksum, fd, offset, len); + FIRST_CHILD(this)->fops->rchecksum, fd, offset, len, xdata); return 0; } int32_t default_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off) + size_t size, off_t off, + dict_t *xdata) { STACK_WIND (frame, default_readdir_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->readdir, fd, size, off); + FIRST_CHILD(this)->fops->readdir, fd, size, off, xdata); return 0; } int32_t default_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off, dict_t *dict) + size_t size, off_t off, dict_t *xdata) { STACK_WIND (frame, default_readdirp_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->readdirp, fd, size, off, dict); + FIRST_CHILD(this)->fops->readdirp, fd, size, off, xdata); return 0; } int32_t default_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, - struct iatt *stbuf, int32_t valid) + struct iatt *stbuf, int32_t valid, + dict_t *xdata) { STACK_WIND (frame, default_setattr_cbk, FIRST_CHILD (this), - FIRST_CHILD (this)->fops->setattr, loc, stbuf, valid); + FIRST_CHILD (this)->fops->setattr, loc, stbuf, valid, xdata); return 0; } int32_t -default_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset) +default_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset, + dict_t *xdata) { STACK_WIND (frame, default_truncate_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->truncate, loc, offset); + FIRST_CHILD(this)->fops->truncate, loc, offset, xdata); return 0; } int32_t -default_stat (call_frame_t *frame, xlator_t *this, loc_t *loc) +default_stat (call_frame_t *frame, xlator_t *this, loc_t *loc, + dict_t *xdata) { STACK_WIND (frame, default_stat_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->stat, loc); + FIRST_CHILD(this)->fops->stat, loc, xdata); return 0; } int32_t default_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *xattr_req) + dict_t *xdata) { STACK_WIND (frame, default_lookup_cbk, FIRST_CHILD(this), - FIRST_CHILD(this)->fops->lookup, loc, xattr_req); + FIRST_CHILD(this)->fops->lookup, loc, xdata); return 0; } int32_t default_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - struct iatt *stbuf, int32_t valid) + struct iatt *stbuf, int32_t valid, + dict_t *xdata) { STACK_WIND (frame, default_fsetattr_cbk, FIRST_CHILD (this), - FIRST_CHILD (this)->fops->fsetattr, fd, stbuf, valid); + FIRST_CHILD (this)->fops->fsetattr, fd, stbuf, valid, xdata); return 0; } diff --git a/libglusterfs/src/defaults.h b/libglusterfs/src/defaults.h index f30bd8332..ae01fc205 100644 --- a/libglusterfs/src/defaults.h +++ b/libglusterfs/src/defaults.h @@ -31,6 +31,18 @@ #include "xlator.h" +int32_t default_notify (xlator_t *this, + int32_t event, + void *data, + ...); + +int32_t default_forget (xlator_t *this, inode_t *inode); + +int32_t default_release (xlator_t *this, fd_t *fd); + +int32_t default_releasedir (xlator_t *this, fd_t *fd); + + /* Management Operations */ int32_t default_getspec (call_frame_t *frame, @@ -41,84 +53,85 @@ int32_t default_getspec (call_frame_t *frame, int32_t default_rchecksum (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - int32_t len); + int32_t len, dict_t *xdata); /* FileSystem operations */ int32_t default_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *xattr_req); + dict_t *xdata); int32_t default_stat (call_frame_t *frame, xlator_t *this, - loc_t *loc); + loc_t *loc, dict_t *xdata); int32_t default_fstat (call_frame_t *frame, xlator_t *this, - fd_t *fd); + fd_t *fd, dict_t *xdata); int32_t default_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, - off_t offset); + off_t offset, dict_t *xdata); int32_t default_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, - off_t offset); + off_t offset, dict_t *xdata); int32_t default_access (call_frame_t *frame, xlator_t *this, loc_t *loc, - int32_t mask); + int32_t mask, dict_t *xdata); int32_t default_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, - size_t size); + size_t size, dict_t *xdata); -int32_t default_mknod (call_frame_t *frame, xlator_t *this, - loc_t *loc, mode_t mode, dev_t rdev, dict_t *params); +int32_t default_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, + mode_t mode, dev_t rdev, mode_t umask, dict_t *xdata); int32_t default_mkdir (call_frame_t *frame, xlator_t *this, - loc_t *loc, mode_t mode, dict_t *params); + loc_t *loc, mode_t mode, mode_t umask, dict_t *xdata); int32_t default_unlink (call_frame_t *frame, xlator_t *this, - loc_t *loc); + loc_t *loc, int xflag, dict_t *xdata); int32_t default_rmdir (call_frame_t *frame, xlator_t *this, - loc_t *loc, int flags); + loc_t *loc, int xflag, dict_t *xdata); int32_t default_symlink (call_frame_t *frame, xlator_t *this, - const char *linkpath, loc_t *loc, dict_t *params); + const char *linkpath, loc_t *loc, mode_t umask, + dict_t *xdata); int32_t default_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc); + loc_t *newloc, dict_t *xdata); int32_t default_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc); + loc_t *newloc, dict_t *xdata); int32_t default_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, mode_t mode, - fd_t *fd, dict_t *params); + mode_t umask, fd_t *fd, dict_t *xdata); int32_t default_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, fd_t *fd, - int32_t wbflags); + dict_t *xdata); int32_t default_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, off_t offset, - uint32_t flags); + uint32_t flags, dict_t *xdata); int32_t default_writev (call_frame_t *frame, xlator_t *this, @@ -127,218 +140,205 @@ int32_t default_writev (call_frame_t *frame, int32_t count, off_t offset, uint32_t flags, - struct iobref *iobref); + struct iobref *iobref, dict_t *xdata); int32_t default_flush (call_frame_t *frame, xlator_t *this, - fd_t *fd); + fd_t *fd, dict_t *xdata); int32_t default_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t datasync); + int32_t datasync, dict_t *xdata); int32_t default_opendir (call_frame_t *frame, xlator_t *this, - loc_t *loc, fd_t *fd); + loc_t *loc, fd_t *fd, dict_t *xdata); int32_t default_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t datasync); + int32_t datasync, dict_t *xdata); int32_t default_statfs (call_frame_t *frame, xlator_t *this, - loc_t *loc); + loc_t *loc, dict_t *xdata); int32_t default_setxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict, - int32_t flags); + int32_t flags, dict_t *xdata); int32_t default_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name); + const char *name, dict_t *xdata); int32_t default_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict, - int32_t flags); + int32_t flags, dict_t *xdata); int32_t default_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name); + const char *name, dict_t *xdata); int32_t default_removexattr (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name); + const char *name, dict_t *xdata); int32_t default_fremovexattr (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name); + const char *name, dict_t *xdata); int32_t default_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); int32_t default_inodelk (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); int32_t default_finodelk (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); int32_t default_entrylk (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, const char *basename, - entrylk_cmd cmd, entrylk_type type); + entrylk_cmd cmd, entrylk_type type, dict_t *xdata); int32_t default_fentrylk (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, const char *basename, - entrylk_cmd cmd, entrylk_type type); + entrylk_cmd cmd, entrylk_type type, dict_t *xdata); int32_t default_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off); + size_t size, off_t off, dict_t *xdata); int32_t default_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off, dict_t *dict); + size_t size, off_t off, dict_t *xdata); int32_t default_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, gf_xattrop_flags_t flags, - dict_t *dict); + dict_t *dict, dict_t *xdata); int32_t default_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd, gf_xattrop_flags_t flags, - dict_t *dict); - -int32_t default_notify (xlator_t *this, - int32_t event, - void *data, - ...); - -int32_t default_forget (xlator_t *this, - inode_t *inode); - -int32_t default_release (xlator_t *this, - fd_t *fd); - -int32_t default_releasedir (xlator_t *this, - fd_t *fd); + dict_t *dict, dict_t *xdata); int32_t default_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, struct iatt *stbuf, - int32_t valid); + int32_t valid, dict_t *xdata); int32_t default_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iatt *stbuf, - int32_t valid); + int32_t valid, dict_t *xdata); /* Resume */ -int32_t default_getspec (call_frame_t *frame, - xlator_t *this, - const char *key, - int32_t flag); +int32_t default_getspec_resume (call_frame_t *frame, + xlator_t *this, + const char *key, + int32_t flag); -int32_t default_rchecksum (call_frame_t *frame, +int32_t default_rchecksum_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - int32_t len); + int32_t len, dict_t *xdata); /* FileSystem operations */ int32_t default_lookup_resume (call_frame_t *frame, - xlator_t *this, - loc_t *loc, - dict_t *xattr_req); + xlator_t *this, + loc_t *loc, + dict_t *xdata); int32_t default_stat_resume (call_frame_t *frame, xlator_t *this, - loc_t *loc); + loc_t *loc, dict_t *xdata); int32_t default_fstat_resume (call_frame_t *frame, xlator_t *this, - fd_t *fd); + fd_t *fd, dict_t *xdata); int32_t default_truncate_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - off_t offset); + off_t offset, dict_t *xdata); int32_t default_ftruncate_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - off_t offset); + off_t offset, dict_t *xdata); int32_t default_access_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - int32_t mask); + int32_t mask, dict_t *xdata); int32_t default_readlink_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - size_t size); + size_t size, dict_t *xdata); -int32_t default_mknod_resume (call_frame_t *frame, xlator_t *this, - loc_t *loc, mode_t mode, dev_t rdev, dict_t *params); +int32_t default_mknod_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, + mode_t mode, dev_t rdev, mode_t umask, + dict_t *xdata); -int32_t default_mkdir_resume (call_frame_t *frame, xlator_t *this, - loc_t *loc, mode_t mode, dict_t *params); +int32_t default_mkdir_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, + mode_t mode, mode_t umask, dict_t *xdata); int32_t default_unlink_resume (call_frame_t *frame, - xlator_t *this, - loc_t *loc); + xlator_t *this, + loc_t *loc, int xflag, dict_t *xdata); int32_t default_rmdir_resume (call_frame_t *frame, xlator_t *this, - loc_t *loc, int flags); + loc_t *loc, int xflag, dict_t *xdata); int32_t default_symlink_resume (call_frame_t *frame, xlator_t *this, - const char *linkpath, loc_t *loc, dict_t *params); + const char *linkpath, loc_t *loc, mode_t umask, + dict_t *xdata); int32_t default_rename_resume (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc); + loc_t *newloc, dict_t *xdata); int32_t default_link_resume (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc); + loc_t *newloc, dict_t *xdata); int32_t default_create_resume (call_frame_t *frame, xlator_t *this, - loc_t *loc, int32_t flags, mode_t mode, - fd_t *fd, dict_t *params); + loc_t *loc, int32_t flags, mode_t mode, + mode_t umask, fd_t *fd, dict_t *xdata); int32_t default_open_resume (call_frame_t *frame, - xlator_t *this, - loc_t *loc, - int32_t flags, fd_t *fd, - int32_t wbflags); + xlator_t *this, + loc_t *loc, + int32_t flags, fd_t *fd, dict_t *xdata); int32_t default_readv_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, - off_t offset, uint32_t flags); + off_t offset, uint32_t flags, dict_t *xdata); int32_t default_writev_resume (call_frame_t *frame, xlator_t *this, @@ -346,345 +346,331 @@ int32_t default_writev_resume (call_frame_t *frame, struct iovec *vector, int32_t count, off_t offset, uint32_t flags, - struct iobref *iobref); + struct iobref *iobref, dict_t *xdata); int32_t default_flush_resume (call_frame_t *frame, xlator_t *this, - fd_t *fd); + fd_t *fd, dict_t *xdata); int32_t default_fsync_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t datasync); + int32_t datasync, dict_t *xdata); int32_t default_opendir_resume (call_frame_t *frame, xlator_t *this, - loc_t *loc, fd_t *fd); + loc_t *loc, fd_t *fd, dict_t *xdata); int32_t default_fsyncdir_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t datasync); + int32_t datasync, dict_t *xdata); int32_t default_statfs_resume (call_frame_t *frame, xlator_t *this, - loc_t *loc); + loc_t *loc, dict_t *xdata); int32_t default_setxattr_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict, - int32_t flags); + int32_t flags, dict_t *xdata); int32_t default_getxattr_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name); + const char *name, dict_t *xdata); int32_t default_fsetxattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict, - int32_t flags); + int32_t flags, dict_t *xdata); int32_t default_fgetxattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name); + const char *name, dict_t *xdata); int32_t default_removexattr_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name); + const char *name, dict_t *xdata); int32_t default_fremovexattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name); + const char *name, dict_t *xdata); int32_t default_lk_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); int32_t default_inodelk_resume (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); int32_t default_finodelk_resume (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); int32_t default_entrylk_resume (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, const char *basename, - entrylk_cmd cmd, entrylk_type type); + entrylk_cmd cmd, entrylk_type type, dict_t *xdata); int32_t default_fentrylk_resume (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, const char *basename, - entrylk_cmd cmd, entrylk_type type); + entrylk_cmd cmd, entrylk_type type, dict_t *xdata); int32_t default_readdir_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off); + size_t size, off_t off, dict_t *xdata); int32_t default_readdirp_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t off, dict_t *dict); + size_t size, off_t off, dict_t *xdata); int32_t default_xattrop_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, gf_xattrop_flags_t flags, - dict_t *dict); + dict_t *dict, dict_t *xdata); int32_t default_fxattrop_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, gf_xattrop_flags_t flags, - dict_t *dict); + dict_t *dict, dict_t *xdata); int32_t default_rchecksum_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - int32_t len); - -int32_t default_notify (xlator_t *this, - int32_t event, - void *data, - ...); - -int32_t default_forget (xlator_t *this, - inode_t *inode); - -int32_t default_release (xlator_t *this, - fd_t *fd); - -int32_t default_releasedir (xlator_t *this, - fd_t *fd); + int32_t len, dict_t *xdata); int32_t default_setattr_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, struct iatt *stbuf, - int32_t valid); + int32_t valid, dict_t *xdata); int32_t default_fsetattr_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iatt *stbuf, - int32_t valid); + int32_t valid, dict_t *xdata); /* _cbk */ int32_t default_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, - struct iatt *buf, dict_t *dict, struct iatt *postparent); + struct iatt *buf, dict_t *xdata, struct iatt *postparent); int32_t default_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct iatt *buf); + int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata); int32_t default_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); int32_t default_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); int32_t default_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, const char *path, - struct iatt *buf); + struct iatt *buf, dict_t *xdata); int32_t default_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); int32_t default_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); int32_t default_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); int32_t default_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); int32_t default_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); int32_t default_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *buf, struct iatt *preoldparent, struct iatt *postoldparent, - struct iatt *prenewparent, struct iatt *postnewparent); + struct iatt *prenewparent, struct iatt *postnewparent, dict_t *xdata); int32_t default_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); int32_t default_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); int32_t default_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, fd_t *fd); + int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata); int32_t default_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iovec *vector, - int32_t count, struct iatt *stbuf, struct iobref *iobref); + int32_t count, struct iatt *stbuf, struct iobref *iobref, dict_t *xdata); int32_t default_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); int32_t default_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); int32_t default_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct iatt *buf); + int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata); int32_t default_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, fd_t *fd); + int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata); int32_t default_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct statvfs *buf); + int32_t op_ret, int32_t op_errno, struct statvfs *buf, dict_t *xdata); int32_t default_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_fgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *dict); + int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata); int32_t default_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *dict); + int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata); int32_t default_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *dict); + int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata); int32_t default_fxattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *dict); + int32_t op_ret, int32_t op_errno, dict_t *dict, dict_t *xdata); int32_t default_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_fremovexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct gf_flock *lock); + int32_t op_ret, int32_t op_errno, struct gf_flock *lock, dict_t *xdata); int32_t default_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_finodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_fentrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno); + int32_t op_ret, int32_t op_errno, dict_t *xdata); int32_t default_rchecksum_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, uint32_t weak_checksum, - uint8_t *strong_checksum); + uint8_t *strong_checksum, dict_t *xdata); int32_t default_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, gf_dirent_t *entries); + int32_t op_ret, int32_t op_errno, gf_dirent_t *entries, dict_t *xdata); int32_t default_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, gf_dirent_t *entries); + int32_t op_ret, int32_t op_errno, gf_dirent_t *entries, dict_t *xdata); int32_t default_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *statpre, - struct iatt *statpost); + struct iatt *statpost, dict_t *xdata); int32_t default_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iatt *statpre, - struct iatt *statpost); + struct iatt *statpost, dict_t *xdata); int32_t default_getspec_cbk (call_frame_t *frame, void *cookie, xlator_t *this, diff --git a/libglusterfs/src/syncop.c b/libglusterfs/src/syncop.c index 47bb0137d..e407ab74d 100644 --- a/libglusterfs/src/syncop.c +++ b/libglusterfs/src/syncop.c @@ -423,7 +423,7 @@ syncenv_new (size_t stacksize) int syncop_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret, int op_errno, inode_t *inode, - struct iatt *iatt, dict_t *xattr, struct iatt *parent) + struct iatt *iatt, dict_t *xdata, struct iatt *parent) { struct syncargs *args = NULL; @@ -435,8 +435,8 @@ syncop_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, if (op_ret == 0) { args->iatt1 = *iatt; args->iatt2 = *parent; - if (xattr) - args->xattr = dict_ref (xattr); + if (xdata) + args->xdata = dict_ref (xdata); } __wake (args); @@ -446,22 +446,22 @@ syncop_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int -syncop_lookup (xlator_t *subvol, loc_t *loc, dict_t *xattr_req, - struct iatt *iatt, dict_t **xattr_rsp, struct iatt *parent) +syncop_lookup (xlator_t *subvol, loc_t *loc, dict_t *xdata_req, + struct iatt *iatt, dict_t **xdata_rsp, struct iatt *parent) { struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_lookup_cbk, subvol->fops->lookup, - loc, xattr_req); + loc, xdata_req); if (iatt) *iatt = args.iatt1; if (parent) *parent = args.iatt2; - if (xattr_rsp) - *xattr_rsp = args.xattr; - else if (args.xattr) - dict_unref (args.xattr); + if (xdata_rsp) + *xdata_rsp = args.xdata; + else if (args.xdata) + dict_unref (args.xdata); errno = args.op_errno; return args.op_ret; @@ -488,7 +488,7 @@ syncop_readdirp_cbk (call_frame_t *frame, xlator_t *this, int32_t op_ret, int32_t op_errno, - gf_dirent_t *entries) + gf_dirent_t *entries, dict_t *xdata) { struct syncargs *args = NULL; gf_dirent_t *entry = NULL; @@ -548,7 +548,7 @@ syncop_readdir_cbk (call_frame_t *frame, xlator_t *this, int32_t op_ret, int32_t op_errno, - gf_dirent_t *entries) + gf_dirent_t *entries, dict_t *xdata) { struct syncargs *args = NULL; gf_dirent_t *entry = NULL; @@ -590,7 +590,7 @@ syncop_readdir (xlator_t *subvol, struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_readdir_cbk, subvol->fops->readdir, - fd, size, off); + fd, size, off, NULL); if (entries) list_splice_init (&args.entries.list, &entries->list); @@ -607,7 +607,7 @@ syncop_opendir_cbk (call_frame_t *frame, xlator_t *this, int32_t op_ret, int32_t op_errno, - fd_t *fd) + fd_t *fd, dict_t *xdata) { struct syncargs *args = NULL; @@ -629,7 +629,7 @@ syncop_opendir (xlator_t *subvol, struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_opendir_cbk, subvol->fops->opendir, - loc, fd); + loc, fd, NULL); errno = args.op_errno; return args.op_ret; @@ -638,7 +638,7 @@ syncop_opendir (xlator_t *subvol, int syncop_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int op_ret, int op_errno) + int op_ret, int op_errno, dict_t *xdata) { struct syncargs *args = NULL; @@ -658,7 +658,7 @@ syncop_removexattr (xlator_t *subvol, loc_t *loc, const char *name) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_removexattr_cbk, subvol->fops->removexattr, - loc, name); + loc, name, NULL); errno = args.op_errno; return args.op_ret; @@ -666,7 +666,7 @@ syncop_removexattr (xlator_t *subvol, loc_t *loc, const char *name) int syncop_fremovexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int op_ret, int op_errno) + int op_ret, int op_errno, dict_t *xdata) { struct syncargs *args = NULL; @@ -686,7 +686,7 @@ syncop_fremovexattr (xlator_t *subvol, fd_t *fd, const char *name) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_fremovexattr_cbk, - subvol->fops->fremovexattr, fd, name); + subvol->fops->fremovexattr, fd, name, NULL); errno = args.op_errno; return args.op_ret; @@ -694,7 +694,7 @@ syncop_fremovexattr (xlator_t *subvol, fd_t *fd, const char *name) int syncop_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int op_ret, int op_errno) + int op_ret, int op_errno, dict_t *xdata) { struct syncargs *args = NULL; @@ -715,7 +715,7 @@ syncop_setxattr (xlator_t *subvol, loc_t *loc, dict_t *dict, int32_t flags) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_setxattr_cbk, subvol->fops->setxattr, - loc, dict, flags); + loc, dict, flags, NULL); errno = args.op_errno; return args.op_ret; @@ -723,7 +723,7 @@ syncop_setxattr (xlator_t *subvol, loc_t *loc, dict_t *dict, int32_t flags) int syncop_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int op_ret, int op_errno) + int op_ret, int op_errno, dict_t *xdata) { struct syncargs *args = NULL; @@ -744,7 +744,7 @@ syncop_fsetxattr (xlator_t *subvol, fd_t *fd, dict_t *dict, int32_t flags) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_fsetxattr_cbk, subvol->fops->fsetxattr, - fd, dict, flags); + fd, dict, flags, NULL); errno = args.op_errno; return args.op_ret; @@ -752,7 +752,7 @@ syncop_fsetxattr (xlator_t *subvol, fd_t *fd, dict_t *dict, int32_t flags) int syncop_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int op_ret, int op_errno, dict_t *dict) + int op_ret, int op_errno, dict_t *dict, dict_t *xdata) { struct syncargs *args = NULL; @@ -774,7 +774,7 @@ syncop_listxattr (xlator_t *subvol, loc_t *loc, dict_t **dict) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_getxattr_cbk, subvol->fops->getxattr, - loc, NULL); + loc, NULL, NULL); if (dict) *dict = args.xattr; @@ -791,7 +791,7 @@ syncop_getxattr (xlator_t *subvol, loc_t *loc, dict_t **dict, const char *key) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_getxattr_cbk, subvol->fops->getxattr, - loc, key); + loc, key, NULL); if (dict) *dict = args.xattr; @@ -808,7 +808,7 @@ syncop_fgetxattr (xlator_t *subvol, fd_t *fd, dict_t **dict, const char *key) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_getxattr_cbk, subvol->fops->fgetxattr, - fd, key); + fd, key, NULL); if (dict) *dict = args.xattr; @@ -822,7 +822,7 @@ syncop_fgetxattr (xlator_t *subvol, fd_t *fd, dict_t **dict, const char *key) int syncop_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - struct statvfs *buf) + struct statvfs *buf, dict_t *xdata) { struct syncargs *args = NULL; @@ -849,7 +849,7 @@ syncop_statfs (xlator_t *subvol, loc_t *loc, struct statvfs *buf) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_statfs_cbk, subvol->fops->statfs, - loc); + loc, NULL); if (buf) *buf = args.statvfs_buf; @@ -861,7 +861,7 @@ syncop_statfs (xlator_t *subvol, loc_t *loc, struct statvfs *buf) int syncop_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret, int op_errno, - struct iatt *preop, struct iatt *postop) + struct iatt *preop, struct iatt *postop, dict_t *xdata) { struct syncargs *args = NULL; @@ -888,7 +888,7 @@ syncop_setattr (xlator_t *subvol, loc_t *loc, struct iatt *iatt, int valid, struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_setattr_cbk, subvol->fops->setattr, - loc, iatt, valid); + loc, iatt, valid, NULL); if (preop) *preop = args.iatt1; @@ -907,7 +907,7 @@ syncop_fsetattr (xlator_t *subvol, fd_t *fd, struct iatt *iatt, int valid, struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_setattr_cbk, subvol->fops->fsetattr, - fd, iatt, valid); + fd, iatt, valid, NULL); if (preop) *preop = args.iatt1; @@ -921,7 +921,7 @@ syncop_fsetattr (xlator_t *subvol, fd_t *fd, struct iatt *iatt, int valid, int32_t syncop_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, fd_t *fd) + int32_t op_ret, int32_t op_errno, fd_t *fd, dict_t *xdata) { struct syncargs *args = NULL; @@ -944,7 +944,7 @@ syncop_open (xlator_t *subvol, loc_t *loc, int32_t flags, fd_t *fd) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_open_cbk, subvol->fops->open, - loc, flags, fd, 0); + loc, flags, fd, NULL); errno = args.op_errno; return args.op_ret; @@ -955,7 +955,8 @@ syncop_open (xlator_t *subvol, loc_t *loc, int32_t flags, fd_t *fd) int32_t syncop_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iovec *vector, - int32_t count, struct iatt *stbuf, struct iobref *iobref) + int32_t count, struct iatt *stbuf, struct iobref *iobref, + dict_t *xdata) { struct syncargs *args = NULL; @@ -987,7 +988,7 @@ syncop_readv (xlator_t *subvol, fd_t *fd, size_t size, off_t off, struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_readv_cbk, subvol->fops->readv, - fd, size, off, flags); + fd, size, off, flags, NULL); if (vector) *vector = args.vector; @@ -1011,7 +1012,7 @@ syncop_readv (xlator_t *subvol, fd_t *fd, size_t size, off_t off, int syncop_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret, int op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, dict_t *xdata) { struct syncargs *args = NULL; @@ -1033,7 +1034,7 @@ syncop_writev (xlator_t *subvol, fd_t *fd, struct iovec *vector, struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_writev_cbk, subvol->fops->writev, - fd, vector, count, offset, flags, iobref); + fd, vector, count, offset, flags, iobref, NULL); errno = args.op_errno; return args.op_ret; @@ -1049,7 +1050,7 @@ int syncop_write (xlator_t *subvol, fd_t *fd, const char *buf, int size, vec.iov_base = (void *)buf; SYNCOP (subvol, (&args), syncop_writev_cbk, subvol->fops->writev, - fd, &vec, 1, offset, flags, iobref); + fd, &vec, 1, offset, flags, iobref, NULL); errno = args.op_errno; return args.op_ret; @@ -1068,7 +1069,7 @@ int32_t syncop_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { struct syncargs *args = NULL; @@ -1087,12 +1088,12 @@ syncop_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int syncop_create (xlator_t *subvol, loc_t *loc, int32_t flags, mode_t mode, - fd_t *fd, dict_t *dict) + fd_t *fd, dict_t *xdata) { struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_create_cbk, subvol->fops->create, - loc, flags, mode, fd, dict); + loc, flags, mode, 0, fd, xdata); errno = args.op_errno; return args.op_ret; @@ -1102,7 +1103,7 @@ syncop_create (xlator_t *subvol, loc_t *loc, int32_t flags, mode_t mode, int syncop_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret, int op_errno, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { struct syncargs *args = NULL; @@ -1121,7 +1122,8 @@ syncop_unlink (xlator_t *subvol, loc_t *loc) { struct syncargs args = {0, }; - SYNCOP (subvol, (&args), syncop_unlink_cbk, subvol->fops->unlink, loc); + SYNCOP (subvol, (&args), syncop_unlink_cbk, subvol->fops->unlink, loc, + 0, NULL); errno = args.op_errno; return args.op_ret; @@ -1131,7 +1133,7 @@ int syncop_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { struct syncargs *args = NULL; @@ -1152,7 +1154,7 @@ syncop_link (xlator_t *subvol, loc_t *oldloc, loc_t *newloc) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_link_cbk, subvol->fops->link, - oldloc, newloc); + oldloc, newloc, NULL); errno = args.op_errno; @@ -1162,7 +1164,7 @@ syncop_link (xlator_t *subvol, loc_t *oldloc, loc_t *newloc) int syncop_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret, int op_errno, struct iatt *prebuf, - struct iatt *postbuf) + struct iatt *postbuf, dict_t *xdata) { struct syncargs *args = NULL; @@ -1182,7 +1184,7 @@ syncop_ftruncate (xlator_t *subvol, fd_t *fd, off_t offset) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_ftruncate_cbk, subvol->fops->ftruncate, - fd, offset); + fd, offset, NULL); errno = args.op_errno; return args.op_ret; @@ -1194,7 +1196,7 @@ syncop_truncate (xlator_t *subvol, loc_t *loc, off_t offset) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_ftruncate_cbk, subvol->fops->truncate, - loc, offset); + loc, offset, NULL); errno = args.op_errno; return args.op_ret; @@ -1203,7 +1205,7 @@ syncop_truncate (xlator_t *subvol, loc_t *loc, off_t offset) int syncop_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - struct iatt *prebuf, struct iatt *postbuf) + struct iatt *prebuf, struct iatt *postbuf, dict_t *xdata) { struct syncargs *args = NULL; @@ -1224,7 +1226,7 @@ syncop_fsync (xlator_t *subvol, fd_t *fd) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_fsync_cbk, subvol->fops->fsync, - fd, 0); + fd, 0, NULL); errno = args.op_errno; return args.op_ret; @@ -1233,7 +1235,7 @@ syncop_fsync (xlator_t *subvol, fd_t *fd) int syncop_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, struct iatt *stbuf) + int32_t op_ret, int32_t op_errno, struct iatt *stbuf, dict_t *xdata) { struct syncargs *args = NULL; @@ -1256,7 +1258,7 @@ syncop_fstat (xlator_t *subvol, fd_t *fd, struct iatt *stbuf) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_fstat_cbk, subvol->fops->fstat, - fd); + fd, NULL); if (stbuf) *stbuf = args.iatt1; @@ -1272,7 +1274,7 @@ syncop_stat (xlator_t *subvol, loc_t *loc, struct iatt *stbuf) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_fstat_cbk, subvol->fops->stat, - loc); + loc, NULL); if (stbuf) *stbuf = args.iatt1; @@ -1286,7 +1288,7 @@ int32_t syncop_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { struct syncargs *args = NULL; @@ -1306,7 +1308,7 @@ syncop_symlink (xlator_t *subvol, loc_t *loc, char *newpath, dict_t *dict) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_symlink_cbk, subvol->fops->symlink, - newpath, loc, dict); + newpath, loc, 0, dict); errno = args.op_errno; return args.op_ret; @@ -1316,7 +1318,7 @@ syncop_symlink (xlator_t *subvol, loc_t *loc, char *newpath, dict_t *dict) int syncop_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret, int op_errno, const char *path, - struct iatt *stbuf) + struct iatt *stbuf, dict_t *xdata) { struct syncargs *args = NULL; @@ -1339,7 +1341,7 @@ syncop_readlink (xlator_t *subvol, loc_t *loc, char **buffer, size_t size) struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_readlink_cbk, subvol->fops->readlink, - loc, size); + loc, size, NULL); if (buffer) *buffer = args.buffer; @@ -1354,7 +1356,7 @@ int syncop_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent) + struct iatt *postparent, dict_t *xdata) { struct syncargs *args = NULL; @@ -1375,7 +1377,7 @@ syncop_mknod (xlator_t *subvol, loc_t *loc, mode_t mode, dev_t rdev, struct syncargs args = {0, }; SYNCOP (subvol, (&args), syncop_mknod_cbk, subvol->fops->mknod, - loc, mode, rdev, dict); + loc, mode, rdev, 0, dict); errno = args.op_errno; return args.op_ret; diff --git a/libglusterfs/src/syncop.h b/libglusterfs/src/syncop.h index 69bd1d770..f095319c4 100644 --- a/libglusterfs/src/syncop.h +++ b/libglusterfs/src/syncop.h @@ -112,6 +112,7 @@ struct syncargs { int count; struct iobref *iobref; char *buffer; + dict_t *xdata; /* some more _cbk needs */ uuid_t uuid; diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h index c0b56a7b0..bad328f6c 100644 --- a/libglusterfs/src/xlator.h +++ b/libglusterfs/src/xlator.h @@ -106,7 +106,8 @@ typedef int32_t (*fop_rchecksum_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, uint32_t weak_checksum, - uint8_t *strong_checksum); + uint8_t *strong_checksum, + dict_t *xdata); typedef int32_t (*fop_getspec_t) (call_frame_t *frame, @@ -117,7 +118,7 @@ typedef int32_t (*fop_getspec_t) (call_frame_t *frame, typedef int32_t (*fop_rchecksum_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, - int32_t len); + int32_t len, dict_t *xdata); typedef int32_t (*fop_lookup_cbk_t) (call_frame_t *frame, @@ -127,7 +128,7 @@ typedef int32_t (*fop_lookup_cbk_t) (call_frame_t *frame, int32_t op_errno, inode_t *inode, struct iatt *buf, - dict_t *xattr, + dict_t *xdata, struct iatt *postparent); typedef int32_t (*fop_stat_cbk_t) (call_frame_t *frame, @@ -135,14 +136,14 @@ typedef int32_t (*fop_stat_cbk_t) (call_frame_t *frame, xlator_t *this, int32_t op_ret, int32_t op_errno, - struct iatt *buf); + struct iatt *buf, dict_t *xdata); typedef int32_t (*fop_fstat_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - struct iatt *buf); + struct iatt *buf, dict_t *xdata); typedef int32_t (*fop_truncate_cbk_t) (call_frame_t *frame, void *cookie, @@ -150,7 +151,7 @@ typedef int32_t (*fop_truncate_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); typedef int32_t (*fop_ftruncate_cbk_t) (call_frame_t *frame, void *cookie, @@ -158,13 +159,13 @@ typedef int32_t (*fop_ftruncate_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); typedef int32_t (*fop_access_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_readlink_cbk_t) (call_frame_t *frame, void *cookie, @@ -172,7 +173,7 @@ typedef int32_t (*fop_readlink_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, const char *path, - struct iatt *buf); + struct iatt *buf, dict_t *xdata); typedef int32_t (*fop_mknod_cbk_t) (call_frame_t *frame, void *cookie, @@ -182,7 +183,7 @@ typedef int32_t (*fop_mknod_cbk_t) (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); typedef int32_t (*fop_mkdir_cbk_t) (call_frame_t *frame, void *cookie, @@ -192,7 +193,7 @@ typedef int32_t (*fop_mkdir_cbk_t) (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); typedef int32_t (*fop_unlink_cbk_t) (call_frame_t *frame, void *cookie, @@ -200,7 +201,7 @@ typedef int32_t (*fop_unlink_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); typedef int32_t (*fop_rmdir_cbk_t) (call_frame_t *frame, void *cookie, @@ -208,7 +209,7 @@ typedef int32_t (*fop_rmdir_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); typedef int32_t (*fop_symlink_cbk_t) (call_frame_t *frame, void *cookie, @@ -218,7 +219,7 @@ typedef int32_t (*fop_symlink_cbk_t) (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); typedef int32_t (*fop_rename_cbk_t) (call_frame_t *frame, void *cookie, @@ -229,7 +230,7 @@ typedef int32_t (*fop_rename_cbk_t) (call_frame_t *frame, struct iatt *preoldparent, struct iatt *postoldparent, struct iatt *prenewparent, - struct iatt *postnewparent); + struct iatt *postnewparent, dict_t *xdata); typedef int32_t (*fop_link_cbk_t) (call_frame_t *frame, void *cookie, @@ -239,7 +240,7 @@ typedef int32_t (*fop_link_cbk_t) (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); typedef int32_t (*fop_create_cbk_t) (call_frame_t *frame, void *cookie, @@ -250,14 +251,14 @@ typedef int32_t (*fop_create_cbk_t) (call_frame_t *frame, inode_t *inode, struct iatt *buf, struct iatt *preparent, - struct iatt *postparent); + struct iatt *postparent, dict_t *xdata); typedef int32_t (*fop_open_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - fd_t *fd); + fd_t *fd, dict_t *xdata); typedef int32_t (*fop_readv_cbk_t) (call_frame_t *frame, void *cookie, @@ -267,7 +268,7 @@ typedef int32_t (*fop_readv_cbk_t) (call_frame_t *frame, struct iovec *vector, int32_t count, struct iatt *stbuf, - struct iobref *iobref); + struct iobref *iobref, dict_t *xdata); typedef int32_t (*fop_writev_cbk_t) (call_frame_t *frame, void *cookie, @@ -275,13 +276,13 @@ typedef int32_t (*fop_writev_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); typedef int32_t (*fop_flush_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_fsync_cbk_t) (call_frame_t *frame, void *cookie, @@ -289,124 +290,124 @@ typedef int32_t (*fop_fsync_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *prebuf, - struct iatt *postbuf); + struct iatt *postbuf, dict_t *xdata); typedef int32_t (*fop_opendir_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - fd_t *fd); + fd_t *fd, dict_t *xdata); typedef int32_t (*fop_fsyncdir_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_statfs_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - struct statvfs *buf); + struct statvfs *buf, dict_t *xdata); typedef int32_t (*fop_setxattr_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_getxattr_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - dict_t *dict); + dict_t *dict, dict_t *xdata); typedef int32_t (*fop_fsetxattr_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_fgetxattr_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - dict_t *dict); + dict_t *dict, dict_t *xdata); typedef int32_t (*fop_removexattr_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_fremovexattr_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_lk_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); typedef int32_t (*fop_inodelk_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_finodelk_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_entrylk_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_fentrylk_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, - int32_t op_errno); + int32_t op_errno, dict_t *xdata); typedef int32_t (*fop_readdir_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - gf_dirent_t *entries); + gf_dirent_t *entries, dict_t *xdata); typedef int32_t (*fop_readdirp_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - gf_dirent_t *entries); + gf_dirent_t *entries, dict_t *xdata); typedef int32_t (*fop_xattrop_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - dict_t *xattr); + dict_t *xattr, dict_t *xdata); typedef int32_t (*fop_fxattrop_cbk_t) (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - dict_t *xattr); + dict_t *xattr, dict_t *xdata); typedef int32_t (*fop_setattr_cbk_t) (call_frame_t *frame, @@ -415,7 +416,7 @@ typedef int32_t (*fop_setattr_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *preop_stbuf, - struct iatt *postop_stbuf); + struct iatt *postop_stbuf, dict_t *xdata); typedef int32_t (*fop_fsetattr_cbk_t) (call_frame_t *frame, void *cookie, @@ -423,72 +424,71 @@ typedef int32_t (*fop_fsetattr_cbk_t) (call_frame_t *frame, int32_t op_ret, int32_t op_errno, struct iatt *preop_stbuf, - struct iatt *postop_stbuf); + struct iatt *postop_stbuf, dict_t *xdata); typedef int32_t (*fop_lookup_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *xattr_req); + dict_t *xdata); typedef int32_t (*fop_stat_t) (call_frame_t *frame, xlator_t *this, - loc_t *loc); + loc_t *loc, dict_t *xdata); typedef int32_t (*fop_fstat_t) (call_frame_t *frame, xlator_t *this, - fd_t *fd); + fd_t *fd, dict_t *xdata); typedef int32_t (*fop_truncate_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, - off_t offset); + off_t offset, dict_t *xdata); typedef int32_t (*fop_ftruncate_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, - off_t offset); + off_t offset, dict_t *xdata); typedef int32_t (*fop_access_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, - int32_t mask); + int32_t mask, dict_t *xdata); typedef int32_t (*fop_readlink_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, - size_t size); + size_t size, dict_t *xdata); typedef int32_t (*fop_mknod_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, dev_t rdev, - dict_t *params); + mode_t umask, dict_t *xdata); -typedef int32_t (*fop_mkdir_t) (call_frame_t *frame, xlator_t *this, - loc_t *loc, mode_t mode, dict_t *params); +typedef int32_t (*fop_mkdir_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, + mode_t mode, mode_t umask, dict_t *xdata); -typedef int32_t (*fop_unlink_t) (call_frame_t *frame, - xlator_t *this, - loc_t *loc); +typedef int32_t (*fop_unlink_t) (call_frame_t *frame, xlator_t *this, + loc_t *loc, int xflags, dict_t *xdata); typedef int32_t (*fop_rmdir_t) (call_frame_t *frame, xlator_t *this, - loc_t *loc, int flags); + loc_t *loc, int xflags, dict_t *xdata); typedef int32_t (*fop_symlink_t) (call_frame_t *frame, xlator_t *this, const char *linkname, loc_t *loc, - dict_t *params); + mode_t umask, dict_t *xdata); typedef int32_t (*fop_rename_t) (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc); + loc_t *newloc, dict_t *xdata); typedef int32_t (*fop_link_t) (call_frame_t *frame, xlator_t *this, loc_t *oldloc, - loc_t *newloc); + loc_t *newloc, dict_t *xdata); typedef int32_t (*fop_create_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, mode_t mode, - fd_t *fd, dict_t *params); + mode_t umask, fd_t *fd, dict_t *xdata); /* Tell subsequent writes on the fd_t to fsync after every writev fop without * requiring a fsync fop. @@ -499,19 +499,16 @@ typedef int32_t (*fop_create_t) (call_frame_t *frame, xlator_t *this, */ #define GF_OPEN_NOWB 0x02 -typedef int32_t (*fop_open_t) (call_frame_t *frame, - xlator_t *this, - loc_t *loc, - int32_t flags, - fd_t *fd, - int32_t wbflags); +typedef int32_t (*fop_open_t) (call_frame_t *frame, xlator_t *this, + loc_t *loc, int32_t flags, + fd_t *fd, dict_t *xdata); typedef int32_t (*fop_readv_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, off_t offset, - uint32_t flags); + uint32_t flags, dict_t *xdata); typedef int32_t (*fop_writev_t) (call_frame_t *frame, xlator_t *this, @@ -520,131 +517,131 @@ typedef int32_t (*fop_writev_t) (call_frame_t *frame, int32_t count, off_t offset, uint32_t flags, - struct iobref *iobref); + struct iobref *iobref, dict_t *xdata); typedef int32_t (*fop_flush_t) (call_frame_t *frame, xlator_t *this, - fd_t *fd); + fd_t *fd, dict_t *xdata); typedef int32_t (*fop_fsync_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t datasync); + int32_t datasync, dict_t *xdata); typedef int32_t (*fop_opendir_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, - fd_t *fd); + fd_t *fd, dict_t *xdata); typedef int32_t (*fop_fsyncdir_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, - int32_t datasync); + int32_t datasync, dict_t *xdata); typedef int32_t (*fop_statfs_t) (call_frame_t *frame, xlator_t *this, - loc_t *loc); + loc_t *loc, dict_t *xdata); typedef int32_t (*fop_setxattr_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict, - int32_t flags); + int32_t flags, dict_t *xdata); typedef int32_t (*fop_getxattr_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name); + const char *name, dict_t *xdata); typedef int32_t (*fop_fsetxattr_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict, - int32_t flags); + int32_t flags, dict_t *xdata); typedef int32_t (*fop_fgetxattr_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name); + const char *name, dict_t *xdata); typedef int32_t (*fop_removexattr_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, - const char *name); + const char *name, dict_t *xdata); typedef int32_t (*fop_fremovexattr_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, - const char *name); + const char *name, dict_t *xdata); typedef int32_t (*fop_lk_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); typedef int32_t (*fop_inodelk_t) (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); typedef int32_t (*fop_finodelk_t) (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, int32_t cmd, - struct gf_flock *flock); + struct gf_flock *flock, dict_t *xdata); typedef int32_t (*fop_entrylk_t) (call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, const char *basename, entrylk_cmd cmd, - entrylk_type type); + entrylk_type type, dict_t *xdata); typedef int32_t (*fop_fentrylk_t) (call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, const char *basename, entrylk_cmd cmd, - entrylk_type type); + entrylk_type type, dict_t *xdata); typedef int32_t (*fop_readdir_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, - off_t offset); + off_t offset, dict_t *xdata); typedef int32_t (*fop_readdirp_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, off_t offset, - dict_t *dict); + dict_t *xdata); typedef int32_t (*fop_xattrop_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, gf_xattrop_flags_t optype, - dict_t *xattr); + dict_t *xattr, dict_t *xdata); typedef int32_t (*fop_fxattrop_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, gf_xattrop_flags_t optype, - dict_t *xattr); + dict_t *xattr, dict_t *xdata); typedef int32_t (*fop_setattr_t) (call_frame_t *frame, xlator_t *this, loc_t *loc, struct iatt *stbuf, - int32_t valid); + int32_t valid, dict_t *xdata); typedef int32_t (*fop_fsetattr_t) (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iatt *stbuf, - int32_t valid); + int32_t valid, dict_t *xdata); struct xlator_fops { |