summaryrefslogtreecommitdiffstats
path: root/xlators/features
diff options
context:
space:
mode:
authorAshish Pandey <aspandey@redhat.com>2016-08-25 11:49:19 +0530
committerPranith Kumar Karampuri <pkarampu@redhat.com>2016-09-01 07:07:23 -0700
commit68b23745602e4cc6317d6dce72ed0392d4174972 (patch)
treec7429b0ed2b910462b70ca985b38cf7a1d7e9ac7 /xlators/features
parent4ac0cf9c7ba7d98cc21b88aa6d7aa9f7c8884a67 (diff)
feature/locks: Implement fops in locks Translator
Implement those fop which were not present in locks translator. Also make sure to return xdata with the entries which were requested for these fops. Change-Id: I6e7f80e9eb5fba9e34c7034f6bc30557cde20927 BUG: 1231224 Signed-off-by: Ashish Pandey <aspandey@redhat.com> Reviewed-on: http://review.gluster.org/11204 Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com> Smoke: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Diffstat (limited to 'xlators/features')
-rw-r--r--xlators/features/locks/src/posix.c531
1 files changed, 501 insertions, 30 deletions
diff --git a/xlators/features/locks/src/posix.c b/xlators/features/locks/src/posix.c
index 0f83b2aa9df..a6296ba12a9 100644
--- a/xlators/features/locks/src/posix.c
+++ b/xlators/features/locks/src/posix.c
@@ -1489,6 +1489,14 @@ out:
}
int32_t
+pl_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, dict_t *xdata)
+{
+ PL_STACK_UNWIND (fsetxattr, xdata, frame, op_ret, op_errno, xdata);
+ return 0;
+}
+
+int32_t
pl_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict,
int32_t flags, dict_t *xdata)
{
@@ -1509,7 +1517,8 @@ pl_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict,
}
usual:
- STACK_WIND (frame, default_fsetxattr_cbk, FIRST_CHILD(this),
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_fsetxattr_cbk, FIRST_CHILD(this),
FIRST_CHILD(this)->fops->fsetxattr, fd, dict, flags, xdata);
return 0;
@@ -1554,7 +1563,7 @@ int
pl_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno, dict_t *xdata)
{
- STACK_UNWIND_STRICT (flush, frame, op_ret, op_errno, xdata);
+ PL_STACK_UNWIND (flush, xdata, frame, op_ret, op_errno, xdata);
return 0;
}
@@ -1610,6 +1619,7 @@ pl_flush (call_frame_t *frame, xlator_t *this,
do_blocked_rw (pl_inode);
wind:
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
STACK_WIND (frame, pl_flush_cbk, FIRST_CHILD(this),
FIRST_CHILD(this)->fops->flush, fd, xdata);
return 0;
@@ -1740,26 +1750,6 @@ pl_create (call_frame_t *frame, xlator_t *this,
return 0;
}
-int32_t
-pl_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, dict_t *xdata)
-{
- PL_STACK_UNWIND (unlink, xdata, frame, op_ret, op_errno, preparent,
- postparent, xdata);
- return 0;
-}
-
-int32_t
-pl_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag,
- dict_t *xdata)
-{
- PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
- STACK_WIND (frame, pl_unlink_cbk, FIRST_CHILD(this),
- FIRST_CHILD(this)->fops->unlink, loc, xflag, xdata);
- return 0;
-}
-
int
pl_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno,
@@ -3082,11 +3072,22 @@ out:
}
int32_t
+pl_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, dict_t *xdata)
+{
+ PL_STACK_UNWIND (setxattr, xdata, frame, op_ret, op_errno, xdata);
+ return 0;
+}
+
+int32_t
pl_setxattr (call_frame_t *frame, xlator_t *this,
loc_t *loc, dict_t *dict, int flags, dict_t *xdata)
{
int op_ret = 0;
int op_errno = 0;
+ dict_t *xdata_rsp = NULL;
+
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
if (dict_get (dict, GF_META_LOCK_KEY)) {
@@ -3100,13 +3101,14 @@ pl_setxattr (call_frame_t *frame, xlator_t *this,
goto usual;
}
- STACK_UNWIND_STRICT (setxattr, frame, op_ret, op_errno, NULL);
+ PL_STACK_UNWIND (setxattr, xdata_rsp, frame, op_ret, op_errno,
+ xdata_rsp);
return 0;
usual:
- STACK_WIND_TAIL (frame, FIRST_CHILD (this),
- FIRST_CHILD (this)->fops->setxattr, loc, dict, flags,
- xdata);
+ STACK_WIND (frame, pl_setxattr_cbk, FIRST_CHILD (this),
+ FIRST_CHILD (this)->fops->setxattr,
+ loc, dict, flags, xdata);
return 0;
}
@@ -3721,7 +3723,6 @@ out:
return ret;
}
-
int
fini (xlator_t *this)
{
@@ -3737,7 +3738,6 @@ fini (xlator_t *this)
return 0;
}
-
int
pl_inodelk (call_frame_t *frame, xlator_t *this,
const char *volume, loc_t *loc, int32_t cmd, struct gf_flock *flock,
@@ -3903,6 +3903,457 @@ out:
return 0;
}
+int32_t
+pl_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, dict_t *xdata)
+{
+ PL_STACK_UNWIND (unlink, xdata, frame, op_ret, op_errno, preparent,
+ postparent, xdata);
+ return 0;
+}
+
+int32_t
+pl_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag,
+ dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_unlink_cbk, FIRST_CHILD(this),
+ FIRST_CHILD(this)->fops->unlink, loc, xflag, xdata);
+ return 0;
+}
+
+int32_t
+pl_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, dict_t *xdata)
+{
+ PL_STACK_UNWIND (mkdir, xdata, frame, op_ret, op_errno,
+ inode, buf, preparent, postparent, xdata);
+ return 0;
+}
+
+int
+pl_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ mode_t mode, mode_t umask, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_mkdir_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->mkdir, loc, mode,
+ umask, xdata);
+ return 0;
+}
+
+int32_t
+pl_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, struct iatt *buf,
+ dict_t *xdata)
+{
+ PL_STACK_UNWIND (stat, xdata, frame, op_ret, op_errno, buf, xdata);
+ return 0;
+}
+
+int
+pl_stat (call_frame_t *frame, xlator_t *this,
+ loc_t *loc, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_stat_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->stat, loc, xdata);
+ return 0;
+}
+
+int32_t
+pl_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, dict_t *xdata)
+{
+ PL_STACK_UNWIND (mknod, xdata, frame, op_ret, op_errno,
+ inode, buf, preparent, postparent, xdata);
+ return 0;
+}
+
+int
+pl_mknod (call_frame_t *frame, xlator_t *this,
+ loc_t *loc, mode_t mode, dev_t rdev,
+ mode_t umask, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_mknod_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->mknod, loc, mode,
+ rdev, umask, xdata);
+ return 0;
+}
+
+int32_t
+pl_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, dict_t *xdata)
+{
+ PL_STACK_UNWIND (rmdir, xdata, frame, op_ret, op_errno,
+ preparent, postparent, xdata);
+ return 0;
+}
+
+int
+pl_rmdir (call_frame_t *frame, xlator_t *this,
+ loc_t *loc, int xflags, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_rmdir_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->rmdir, loc,
+ xflags, xdata);
+ return 0;
+}
+
+int32_t
+pl_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, dict_t *xdata)
+{
+ PL_STACK_UNWIND (symlink, xdata, frame, op_ret, op_errno,
+ inode, buf, preparent, postparent, xdata);
+ return 0;
+}
+
+int
+pl_symlink (call_frame_t *frame, xlator_t *this,
+ const char *linkname, loc_t *loc,
+ mode_t umask, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_symlink_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->symlink, linkname,
+ loc, umask, xdata);
+ return 0;
+}
+
+int32_t
+pl_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, dict_t *xdata)
+{
+ PL_STACK_UNWIND (link, xdata, frame, op_ret, op_errno,
+ inode, buf, preparent, postparent, xdata);
+ return 0;
+}
+
+int
+pl_link (call_frame_t *frame, xlator_t *this,
+ loc_t *oldloc, loc_t *newloc, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, oldloc, newloc);
+ STACK_WIND (frame, pl_link_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->link, oldloc, newloc, xdata);
+ return 0;
+}
+
+int32_t
+pl_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,
+ dict_t *xdata)
+{
+ PL_STACK_UNWIND (fsync, xdata, frame, op_ret, op_errno,
+ prebuf, postbuf, xdata);
+ return 0;
+}
+
+int
+pl_fsync (call_frame_t *frame, xlator_t *this,
+ fd_t *fd, int32_t datasync, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_fsync_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->fsync, fd, datasync, xdata);
+ return 0;
+}
+
+int32_t
+pl_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, gf_dirent_t *entries,
+ dict_t *xdata)
+{
+ PL_STACK_UNWIND (readdir, xdata, frame, op_ret, op_errno,
+ entries, xdata);
+ return 0;
+}
+
+
+int
+pl_readdir (call_frame_t *frame, xlator_t *this,
+ fd_t *fd, size_t size, off_t offset,
+ dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_readdir_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->readdir, fd,
+ size, offset, xdata);
+ return 0;
+}
+
+int32_t
+pl_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, dict_t *xdata)
+{
+ PL_STACK_UNWIND (fsyncdir, xdata, frame, op_ret, op_errno, xdata);
+ return 0;
+}
+
+int
+pl_fsyncdir (call_frame_t *frame, xlator_t *this,
+ fd_t *fd, int32_t datasync, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_fsyncdir_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->fsyncdir, fd,
+ datasync, xdata);
+ return 0;
+}
+
+int32_t
+pl_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, struct statvfs *buf,
+ dict_t *xdata)
+{
+ PL_STACK_UNWIND (statfs, xdata, frame, op_ret, op_errno, buf, xdata);
+ return 0;
+}
+
+int
+pl_statfs (call_frame_t *frame, xlator_t *this,
+ loc_t *loc, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_statfs_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->statfs, loc, xdata);
+ return 0;
+}
+
+int32_t
+pl_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, dict_t *xdata)
+{
+ PL_STACK_UNWIND (removexattr, xdata, frame, op_ret, op_errno, xdata);
+ return 0;
+}
+
+int
+pl_removexattr (call_frame_t *frame, xlator_t *this,
+ loc_t *loc, const char *name, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_removexattr_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->removexattr, loc, name, xdata);
+ return 0;
+}
+
+int32_t
+pl_fremovexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, dict_t *xdata)
+{
+ PL_STACK_UNWIND (fremovexattr, xdata, frame, op_ret, op_errno, xdata);
+ return 0;
+}
+
+int
+pl_fremovexattr (call_frame_t *frame, xlator_t *this,
+ fd_t *fd, const char *name, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_fremovexattr_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->fremovexattr, fd, name, xdata);
+ return 0;
+}
+
+int32_t
+pl_rchecksum_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, uint32_t weak_cksum,
+ uint8_t *strong_cksum, dict_t *xdata)
+{
+ PL_STACK_UNWIND (rchecksum, xdata, frame, op_ret, op_errno,
+ weak_cksum, strong_cksum, xdata);
+ return 0;
+}
+
+int
+pl_rchecksum (call_frame_t *frame, xlator_t *this,
+ fd_t *fd, off_t offset, int32_t len,
+ dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_rchecksum_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->rchecksum, fd, offset, len, xdata);
+ return 0;
+}
+
+int32_t
+pl_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, dict_t *dict,
+ dict_t *xdata)
+{
+ PL_STACK_UNWIND (xattrop, xdata, frame, op_ret, op_errno, dict, xdata);
+ return 0;
+}
+
+int
+pl_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ gf_xattrop_flags_t optype, dict_t *xattr,
+ dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_xattrop_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->xattrop, loc,
+ optype, xattr, xdata);
+ return 0;
+}
+
+int32_t
+pl_fxattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, dict_t *dict,
+ dict_t *xdata)
+{
+ PL_STACK_UNWIND (fxattrop, xdata, frame, op_ret, op_errno, dict, xdata);
+ return 0;
+}
+
+int
+pl_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd,
+ gf_xattrop_flags_t optype, dict_t *xattr,
+ dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_fxattrop_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->fxattrop, fd,
+ optype, xattr, xdata);
+ return 0;
+}
+
+int32_t
+pl_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,
+ dict_t *xdata)
+{
+ PL_STACK_UNWIND (setattr, xdata, frame, op_ret, op_errno,
+ statpre, statpost, xdata);
+ return 0;
+}
+
+int
+pl_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ struct iatt *stbuf, int32_t valid, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_setattr_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->setattr, loc, stbuf, valid, xdata);
+ return 0;
+}
+
+int32_t
+pl_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, dict_t *xdata)
+{
+ PL_STACK_UNWIND (fsetattr, xdata, frame, op_ret, op_errno,
+ statpre, statpost, xdata);
+ return 0;
+}
+
+int
+pl_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
+ struct iatt *stbuf, int32_t valid, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_fsetattr_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->fsetattr, fd, stbuf, valid, xdata);
+ return 0;
+}
+
+int32_t
+pl_fallocate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, struct iatt *pre,
+ struct iatt *post, dict_t *xdata)
+{
+ PL_STACK_UNWIND (fallocate, xdata, frame, op_ret, op_errno,
+ pre, post, xdata);
+ return 0;
+}
+
+int
+pl_fallocate (call_frame_t *frame, xlator_t *this,
+ fd_t *fd, int32_t keep_size, off_t offset,
+ size_t len, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_fallocate_cbk, FIRST_CHILD (this),
+ FIRST_CHILD(this)->fops->fallocate, fd,
+ keep_size, offset, len, xdata);
+ return 0;
+}
+
+int32_t
+pl_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, dict_t *xdata)
+{
+ PL_STACK_UNWIND (readlink, xdata, frame, op_ret, op_errno,
+ path, buf, xdata);
+ return 0;
+}
+
+int
+pl_readlink (call_frame_t *frame, xlator_t *this,
+ loc_t *loc, size_t size, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_readlink_cbk, FIRST_CHILD(this),
+ FIRST_CHILD(this)->fops->readlink, loc, size, xdata);
+ return 0;
+}
+
+int32_t
+pl_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, dict_t *xdata)
+{
+ PL_STACK_UNWIND (access, xdata, frame, op_ret, op_errno, xdata);
+ return 0;
+}
+
+int
+pl_access (call_frame_t *frame, xlator_t *this, loc_t *loc,
+ int32_t mask, dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, NULL, loc, NULL);
+ STACK_WIND (frame, pl_access_cbk, FIRST_CHILD(this),
+ FIRST_CHILD(this)->fops->access, loc, mask, xdata);
+ return 0;
+}
+
+int32_t
+pl_seek_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
+ int32_t op_ret, int32_t op_errno, off_t offset,
+ dict_t *xdata)
+{
+ PL_STACK_UNWIND (seek, xdata, frame, op_ret, op_errno, offset, xdata);
+ return 0;
+}
+
+int32_t
+pl_seek (call_frame_t *frame, xlator_t *this, fd_t *fd,
+ off_t offset, gf_seek_what_t what,
+ dict_t *xdata)
+{
+ PL_LOCAL_GET_REQUESTS (frame, this, xdata, fd, NULL, NULL);
+ STACK_WIND (frame, pl_seek_cbk, FIRST_CHILD(this),
+ FIRST_CHILD(this)->fops->seek, fd, offset, what, xdata);
+ return 0;
+}
+
struct xlator_fops fops = {
.lookup = pl_lookup,
.create = pl_create,
@@ -3922,13 +4373,33 @@ struct xlator_fops fops = {
.flush = pl_flush,
.opendir = pl_opendir,
.readdirp = pl_readdirp,
+ .setxattr = pl_setxattr,
+ .fsetxattr = pl_fsetxattr,
.getxattr = pl_getxattr,
.fgetxattr = pl_fgetxattr,
- .fsetxattr = pl_fsetxattr,
- .setxattr = pl_setxattr,
+ .removexattr = pl_removexattr,
+ .fremovexattr = pl_fremovexattr,
.rename = pl_rename,
.getactivelk = pl_getactivelk,
.setactivelk = pl_setactivelk,
+ .unlink = pl_unlink,
+ .access = pl_access,
+ .readlink = pl_readlink,
+ .fallocate = pl_fallocate,
+ .fsetattr = pl_fsetattr,
+ .setattr = pl_setattr,
+ .fxattrop = pl_fxattrop,
+ .xattrop = pl_xattrop,
+ .rchecksum = pl_rchecksum,
+ .statfs = pl_statfs,
+ .fsyncdir = pl_fsyncdir,
+ .readdir = pl_readdir,
+ .symlink = pl_symlink,
+ .link = pl_link,
+ .rmdir = pl_rmdir,
+ .mknod = pl_mknod,
+ .stat = pl_stat,
+ .seek = pl_seek,
};
struct xlator_dumpops dumpops = {