summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShyamsundarR <srangana@redhat.com>2018-05-08 11:06:15 -0400
committerShyamsundarR <srangana@redhat.com>2018-05-08 11:27:48 -0400
commit16873e16f3fdfe7f83ca919ad188075eebb5dd7c (patch)
treec48e33a299a52c533c134942aca8c33992c26dbe
parent427951b7f74c643d5b7c7c946bc348209b974274 (diff)
Revert "gfapi: return pre/post attributes from glfs_pread/pwrite"
This reverts commit d01f7244e9d9f7e3ef84e0ba7b48ef1b1b09d809. This is being reverted as the API signatures should adapt to a statx like structure, and also all APIs that need to return pre/post attrs are not complete. As a result, instead of fixing up part of the APIs and then refixing the same in a later release, removing these set of fixes from the branch Additionally fixed up posix-entry-ops.c which was using the new syncop signature Updates: bz#1575386 Change-Id: I35222dadc4a2e97010bc1e6b97b6f83583c311f6
-rw-r--r--api/src/gfapi.aliases6
-rw-r--r--api/src/gfapi.map4
-rw-r--r--api/src/glfs-fops.c100
-rw-r--r--api/src/glfs.h9
-rwxr-xr-xlibglusterfs/src/generator.py3
-rw-r--r--libglusterfs/src/syncop.c21
-rw-r--r--libglusterfs/src/syncop.h5
-rw-r--r--tests/basic/gfapi/upcall-cache-invalidate.c2
-rw-r--r--tests/basic/gfapi/upcall-register-api.c2
-rw-r--r--tests/bugs/io-cache/bug-read-hang.c2
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-data.c6
-rw-r--r--xlators/cluster/dht/src/dht-rebalance.c5
-rwxr-xr-xxlators/experimental/fdl/src/gen_recon.py2
-rw-r--r--xlators/features/bit-rot/src/bitd/bit-rot.c2
-rw-r--r--xlators/features/snapview-server/src/snapview-server.c12
-rw-r--r--xlators/storage/posix/src/posix-entry-ops.c2
16 files changed, 54 insertions, 129 deletions
diff --git a/api/src/gfapi.aliases b/api/src/gfapi.aliases
index 4b3bcc1fb54..bf675e865db 100644
--- a/api/src/gfapi.aliases
+++ b/api/src/gfapi.aliases
@@ -24,8 +24,8 @@ _pub_glfs_readv _glfs_readv$GFAPI_3.4.0
_pub_glfs_writev _glfs_writev$GFAPI_3.4.0
_pub_glfs_readv_async _glfs_readv_async$GFAPI_3.4.0
_pub_glfs_writev_async _glfs_writev_async$GFAPI_3.4.0
-_pub_glfs_pread34 _glfs_pread$GFAPI_3.4.0
-_pub_glfs_pwrite34 _glfs_pwrite$GFAPI_3.4.0
+_pub_glfs_pread _glfs_pread$GFAPI_3.4.0
+_pub_glfs_pwrite _glfs_pwrite$GFAPI_3.4.0
_pub_glfs_pread_async _glfs_pread_async$GFAPI_3.4.0
_pub_glfs_pwrite_async _glfs_pwrite_async$GFAPI_3.4.0
_pub_glfs_preadv _glfs_preadv$GFAPI_3.4.0
@@ -173,5 +173,3 @@ _pub_glfs_file_lock _glfs_file_lock$GFAPI_4.0.0
_pub_glfs_lease _glfs_lease$GFAPI_4.0.0
_pub_glfs_h_lease _glfs_h_lease$GFAPI_4.0.0
_pub_glfs_recall_lease _glfs_recall_lease$GFAPI_4.0.0
-_pub_glfs_pread _glfs_pread$GFAPI_4.0.0
-_pub_glfs_pwrite _glfs_pwrite$GFAPI_4.0.0
diff --git a/api/src/gfapi.map b/api/src/gfapi.map
index 09de5fada3a..75ca2645988 100644
--- a/api/src/gfapi.map
+++ b/api/src/gfapi.map
@@ -30,6 +30,8 @@ GFAPI_3.4.0 {
glfs_writev;
glfs_readv_async;
glfs_writev_async;
+ glfs_pread;
+ glfs_pwrite;
glfs_pread_async;
glfs_pwrite_async;
glfs_preadv;
@@ -224,6 +226,4 @@ GFAPI_4.0.0 {
glfs_lease;
glfs_h_lease;
glfs_recall_lease;
- glfs_pread;
- glfs_pwrite;
} GFAPI_3.13.0;
diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c
index 35a6a6628e8..f243999c0c8 100644
--- a/api/src/glfs-fops.c
+++ b/api/src/glfs-fops.c
@@ -748,9 +748,9 @@ invalid_fs:
GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_lseek, 3.4.0);
-static ssize_t
-glfs_preadv_common (struct glfs_fd *glfd, const struct iovec *iovec,
- int iovcnt, off_t offset, int flags, struct stat *poststat)
+ssize_t
+pub_glfs_preadv (struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
+ off_t offset, int flags)
{
xlator_t *subvol = NULL;
ssize_t ret = -1;
@@ -759,7 +759,6 @@ glfs_preadv_common (struct glfs_fd *glfd, const struct iovec *iovec,
int cnt = 0;
struct iobref *iobref = NULL;
fd_t *fd = NULL;
- struct iatt iatt = {0, };
dict_t *fop_attr = NULL;
DECLARE_OLD_THIS;
@@ -788,12 +787,9 @@ glfs_preadv_common (struct glfs_fd *glfd, const struct iovec *iovec,
gf_msg_debug ("gfapi", 0, "Getting leaseid from thread failed");
ret = syncop_readv (subvol, fd, size, offset, 0, &iov, &cnt, &iobref,
- &iatt, fop_attr, NULL);
- DECODE_SYNCOP_ERR (ret);
-
- if (ret >= 0 && poststat)
- glfs_iatt_to_stat (glfd->fs, &iatt, poststat);
+ fop_attr, NULL);
+ DECODE_SYNCOP_ERR (ret);
if (ret <= 0)
goto out;
@@ -823,13 +819,6 @@ invalid_fs:
return ret;
}
-ssize_t
-pub_glfs_preadv (struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
- off_t offset, int flags)
-{
- return glfs_preadv_common (glfd, iovec, iovcnt, offset, flags, NULL);
-}
-
GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv, 3.4.0);
@@ -851,8 +840,8 @@ GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read, 3.4.0);
ssize_t
-pub_glfs_pread34 (struct glfs_fd *glfd, void *buf, size_t count, off_t offset,
- int flags)
+pub_glfs_pread (struct glfs_fd *glfd, void *buf, size_t count, off_t offset,
+ int flags)
{
struct iovec iov = {0, };
ssize_t ret = 0;
@@ -865,25 +854,7 @@ pub_glfs_pread34 (struct glfs_fd *glfd, void *buf, size_t count, off_t offset,
return ret;
}
-GFAPI_SYMVER_PUBLIC(glfs_pread34, glfs_pread, 3.4.0);
-
-
-ssize_t
-pub_glfs_pread (struct glfs_fd *glfd, void *buf, size_t count, off_t offset,
- int flags, struct stat *poststat)
-{
- struct iovec iov = {0, };
- ssize_t ret = 0;
-
- iov.iov_base = buf;
- iov.iov_len = count;
-
- ret = glfs_preadv_common (glfd, &iov, 1, offset, flags, poststat);
-
- return ret;
-}
-
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread, 4.0.0);
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread, 3.4.0);
ssize_t
@@ -1179,10 +1150,9 @@ out:
}
-static ssize_t
-glfs_pwritev_common (struct glfs_fd *glfd, const struct iovec *iovec,
- int iovcnt, off_t offset, int flags,
- struct stat *prestat, struct stat *poststat)
+ssize_t
+pub_glfs_pwritev (struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
+ off_t offset, int flags)
{
xlator_t *subvol = NULL;
int ret = -1;
@@ -1190,7 +1160,6 @@ glfs_pwritev_common (struct glfs_fd *glfd, const struct iovec *iovec,
struct iobuf *iobuf = NULL;
struct iovec iov = {0, };
fd_t *fd = NULL;
- struct iatt preiatt = {0, }, postiatt = {0, };
dict_t *fop_attr = NULL;
DECLARE_OLD_THIS;
@@ -1221,20 +1190,15 @@ glfs_pwritev_common (struct glfs_fd *glfd, const struct iovec *iovec,
gf_msg_debug ("gfapi", 0, "Getting leaseid from thread failed");
ret = syncop_writev (subvol, fd, &iov, 1, offset, iobref, flags,
- &preiatt, &postiatt, fop_attr, NULL);
- DECODE_SYNCOP_ERR (ret);
+ fop_attr, NULL);
- if (ret >= 0) {
- if (prestat)
- glfs_iatt_to_stat (glfd->fs, &preiatt, prestat);
- if (poststat)
- glfs_iatt_to_stat (glfd->fs, &postiatt, poststat);
- }
+ DECODE_SYNCOP_ERR (ret);
if (ret <= 0)
goto out;
glfd->offset = (offset + iov.iov_len);
+
out:
if (iobuf)
iobuf_unref (iobuf);
@@ -1255,14 +1219,6 @@ invalid_fs:
return ret;
}
-ssize_t
-pub_glfs_pwritev (struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt,
- off_t offset, int flags)
-{
- return glfs_pwritev_common (glfd, iovec, iovcnt, offset, flags,
- NULL, NULL);
-}
-
GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev, 3.4.0);
@@ -1298,8 +1254,8 @@ GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev, 3.4.0);
ssize_t
-pub_glfs_pwrite34 (struct glfs_fd *glfd, const void *buf, size_t count,
- off_t offset, int flags)
+pub_glfs_pwrite (struct glfs_fd *glfd, const void *buf, size_t count,
+ off_t offset, int flags)
{
struct iovec iov = {0, };
ssize_t ret = 0;
@@ -1312,26 +1268,8 @@ pub_glfs_pwrite34 (struct glfs_fd *glfd, const void *buf, size_t count,
return ret;
}
-GFAPI_SYMVER_PUBLIC(glfs_pwrite34, glfs_pwrite, 3.4.0);
-
-ssize_t
-pub_glfs_pwrite (struct glfs_fd *glfd, const void *buf, size_t count,
- off_t offset, int flags, struct stat *prestat,
- struct stat *poststat)
-{
- struct iovec iov = {0, };
- ssize_t ret = 0;
-
- iov.iov_base = (void *) buf;
- iov.iov_len = count;
-
- ret = glfs_pwritev_common (glfd, &iov, 1, offset, flags,
- prestat, poststat);
-
- return ret;
-}
+GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite, 3.4.0);
-GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite, 4.0.0);
extern glfs_t *pub_glfs_from_glfd (glfs_fd_t *);
@@ -5143,7 +5081,7 @@ glfs_anonymous_pwritev (struct glfs *fs, struct glfs_object *object,
/* TODO : set leaseid */
ret = syncop_writev (subvol, fd, &iov, 1, offset, iobref, flags,
- NULL, NULL, NULL, NULL);
+ NULL, NULL);
DECODE_SYNCOP_ERR (ret);
iobuf_unref (iobuf);
@@ -5213,7 +5151,7 @@ glfs_anonymous_preadv (struct glfs *fs, struct glfs_object *object,
/* TODO : set leaseid */
ret = syncop_readv (subvol, fd, size, offset, flags, &iov, &cnt,
- &iobref, NULL, NULL, NULL);
+ &iobref, NULL, NULL);
DECODE_SYNCOP_ERR (ret);
if (ret <= 0)
goto out;
diff --git a/api/src/glfs.h b/api/src/glfs.h
index c174f53dfaa..ceed2b34290 100644
--- a/api/src/glfs.h
+++ b/api/src/glfs.h
@@ -534,12 +534,11 @@ int glfs_writev_async (glfs_fd_t *fd, const struct iovec *iov, int count,
// glfs_p{read,write}[_async]
ssize_t glfs_pread (glfs_fd_t *fd, void *buf, size_t count, off_t offset,
- int flags, struct stat *poststat) __THROW
- GFAPI_PUBLIC(glfs_pread, 4.0.0);
+ int flags) __THROW
+ GFAPI_PUBLIC(glfs_pread, 3.4.0);
ssize_t glfs_pwrite (glfs_fd_t *fd, const void *buf, size_t count,
- off_t offset, int flags, struct stat *prestat,
- struct stat *poststat) __THROW
- GFAPI_PUBLIC(glfs_pwrite, 4.0.0);
+ off_t offset, int flags) __THROW
+ GFAPI_PUBLIC(glfs_pwrite, 3.4.0);
int glfs_pread_async (glfs_fd_t *fd, void *buf, size_t count, off_t offset,
int flags, glfs_io_cbk fn, void *data) __THROW
GFAPI_PUBLIC(glfs_pread_async, 3.4.0);
diff --git a/libglusterfs/src/generator.py b/libglusterfs/src/generator.py
index bfa774b1ef5..efe9bcba0dd 100755
--- a/libglusterfs/src/generator.py
+++ b/libglusterfs/src/generator.py
@@ -142,8 +142,6 @@ ops['writev'] = (
('fop-arg', 'off', 'off_t', 'offset'),
('fop-arg', 'flags', 'uint32_t', 'flags'),
('fop-arg', 'iobref', 'struct iobref *'),
- ('extra', 'preop', 'struct iatt', '&preop'),
- ('extra', 'postop', 'struct iatt', '&postop'),
('fop-arg', 'xdata', 'dict_t *', 'xdata'),
('cbk-arg', 'prebuf', 'struct iatt *'),
('cbk-arg', 'postbuf', 'struct iatt *'),
@@ -156,7 +154,6 @@ ops['readv'] = (
('fop-arg', 'size', 'size_t'),
('fop-arg', 'offset', 'off_t'),
('fop-arg', 'flags', 'uint32_t'),
- ('extra', 'iatt', 'struct iatt', '&iatt'),
('fop-arg', 'xdata', 'dict_t *'),
('cbk-arg', 'vector', 'struct iovec *'),
('cbk-arg', 'count', 'int32_t'),
diff --git a/libglusterfs/src/syncop.c b/libglusterfs/src/syncop.c
index d0e1ae10774..6aafcbe61e3 100644
--- a/libglusterfs/src/syncop.c
+++ b/libglusterfs/src/syncop.c
@@ -1936,7 +1936,6 @@ syncop_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
args->iobref = iobref_ref (iobref);
args->vector = iov_dup (vector, count);
args->count = count;
- args->iatt1 = *stbuf;
}
__wake (args);
@@ -1948,8 +1947,7 @@ syncop_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int
syncop_readv (xlator_t *subvol, fd_t *fd, size_t size, off_t off,
uint32_t flags, struct iovec **vector, int *count,
- struct iobref **iobref, struct iatt *iatt,
- dict_t *xdata_in, dict_t **xdata_out)
+ struct iobref **iobref, dict_t *xdata_in, dict_t **xdata_out)
{
struct syncargs args = {0, };
@@ -1961,9 +1959,6 @@ syncop_readv (xlator_t *subvol, fd_t *fd, size_t size, off_t off,
else if (args.xdata)
dict_unref (args.xdata);
- if (iatt)
- *iatt = args.iatt1;
-
if (args.op_ret < 0)
goto out;
@@ -1985,6 +1980,7 @@ out:
if (args.op_ret < 0)
return -args.op_errno;
return args.op_ret;
+
}
int
@@ -2001,11 +1997,6 @@ syncop_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
if (xdata)
args->xdata = dict_ref (xdata);
- if (op_ret >= 0) {
- args->iatt1 = *prebuf;
- args->iatt2 = *postbuf;
- }
-
__wake (args);
return 0;
@@ -2014,8 +2005,7 @@ syncop_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int
syncop_writev (xlator_t *subvol, fd_t *fd, const struct iovec *vector,
int32_t count, off_t offset, struct iobref *iobref,
- uint32_t flags, struct iatt *preiatt, struct iatt *postiatt,
- dict_t *xdata_in, dict_t **xdata_out)
+ uint32_t flags, dict_t *xdata_in, dict_t **xdata_out)
{
struct syncargs args = {0, };
@@ -2023,11 +2013,6 @@ syncop_writev (xlator_t *subvol, fd_t *fd, const struct iovec *vector,
fd, (struct iovec *) vector, count, offset, flags, iobref,
xdata_in);
- if (preiatt)
- *preiatt = args.iatt1;
- if (postiatt)
- *postiatt = args.iatt2;
-
if (xdata_out)
*xdata_out = args.xdata;
else if (args.xdata)
diff --git a/libglusterfs/src/syncop.h b/libglusterfs/src/syncop.h
index fb6b3da86a0..ea417934226 100644
--- a/libglusterfs/src/syncop.h
+++ b/libglusterfs/src/syncop.h
@@ -462,14 +462,13 @@ int syncop_write (xlator_t *subvol, fd_t *fd, const char *buf, int size,
int syncop_writev (xlator_t *subvol, fd_t *fd, const struct iovec *vector,
int32_t count, off_t offset, struct iobref *iobref,
- uint32_t flags, struct iatt *preiatt, struct iatt *postiatt,
- dict_t *xdata_in, dict_t **xdata_out);
+ uint32_t flags, dict_t *xdata_in, dict_t **xdata_out);
int syncop_readv (xlator_t *subvol, fd_t *fd, size_t size, off_t off,
uint32_t flags,
/* out */
struct iovec **vector, int *count, struct iobref **iobref,
- struct iatt *iatt, dict_t *xdata_in, dict_t **xdata_out);
+ dict_t *xdata_in, dict_t **xdata_out);
int syncop_ftruncate (xlator_t *subvol, fd_t *fd, off_t offset,
dict_t *xdata_in, dict_t **xdata_out);
diff --git a/tests/basic/gfapi/upcall-cache-invalidate.c b/tests/basic/gfapi/upcall-cache-invalidate.c
index d1b421dff18..9add3381278 100644
--- a/tests/basic/gfapi/upcall-cache-invalidate.c
+++ b/tests/basic/gfapi/upcall-cache-invalidate.c
@@ -137,7 +137,7 @@ main (int argc, char *argv[])
LOG_ERR ("glfs_lseek", ret);
memset (readbuf, 0, sizeof(readbuf));
- ret = glfs_pread (fd_tmp2, readbuf, 4, 0, 0, NULL);
+ ret = glfs_pread (fd_tmp2, readbuf, 4, 0, 0);
if (ret <= 0) {
ret = -1;
diff --git a/tests/basic/gfapi/upcall-register-api.c b/tests/basic/gfapi/upcall-register-api.c
index cabd8be4f31..56227a93d0a 100644
--- a/tests/basic/gfapi/upcall-register-api.c
+++ b/tests/basic/gfapi/upcall-register-api.c
@@ -117,7 +117,7 @@ int perform_io (glfs_t *fs, glfs_t *fs2, int cnt)
LOG_ERR ("glfs_lseek", ret);
memset (readbuf, 0, sizeof(readbuf));
- ret = glfs_pread (fd_tmp2, readbuf, 4, 0, 0, NULL);
+ ret = glfs_pread (fd_tmp2, readbuf, 4, 0, 0);
if (ret <= 0) {
ret = -1;
diff --git a/tests/bugs/io-cache/bug-read-hang.c b/tests/bugs/io-cache/bug-read-hang.c
index 7709a41719d..74dfddd7a6e 100644
--- a/tests/bugs/io-cache/bug-read-hang.c
+++ b/tests/bugs/io-cache/bug-read-hang.c
@@ -102,7 +102,7 @@ main (int argc, char *argv[])
buf = (char *) malloc (5);
- ret = glfs_pread (fd, buf, 5, 0, 0, NULL);
+ ret = glfs_pread (fd, buf, 5, 0, 0);
if (ret < 0) {
fprintf (stderr, "Read(%s): %d (%s)\n", "test", ret,
strerror (errno));
diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c
index 40dee7a7d6c..72e0e85a0a5 100644
--- a/xlators/cluster/afr/src/afr-self-heal-data.c
+++ b/xlators/cluster/afr/src/afr-self-heal-data.c
@@ -141,7 +141,7 @@ __afr_is_sink_zero_filled (xlator_t *this, fd_t *fd, size_t size,
priv = this->private;
ret = syncop_readv (priv->children[sink], fd, size, offset, 0, &iovec,
- &count, &iobref, NULL, NULL, NULL);
+ &count, &iobref, NULL, NULL);
if (ret < 0)
goto out;
ret = iov_0filled (iovec, count);
@@ -171,7 +171,7 @@ __afr_selfheal_data_read_write (call_frame_t *frame, xlator_t *this, fd_t *fd,
priv = this->private;
ret = syncop_readv (priv->children[source], fd, size, offset, 0,
- &iovec, &count, &iobref, NULL, NULL, NULL);
+ &iovec, &count, &iobref, NULL, NULL);
if (ret <= 0)
return ret;
@@ -220,7 +220,7 @@ __afr_selfheal_data_read_write (call_frame_t *frame, xlator_t *this, fd_t *fd,
}
ret = syncop_writev (priv->children[i], fd, iovec, count,
- offset, iobref, 0, NULL, NULL, NULL, NULL);
+ offset, iobref, 0, NULL, NULL);
if (ret != iov_length (iovec, count)) {
/* write() failed on this sink. unset the corresponding
member in sinks[] (which is healed_sinks[] in the
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c
index 6f29f91913f..a2a051e27b7 100644
--- a/xlators/cluster/dht/src/dht-rebalance.c
+++ b/xlators/cluster/dht/src/dht-rebalance.c
@@ -1160,7 +1160,7 @@ __dht_rebalance_migrate_data (xlator_t *this, gf_defrag_info_t *defrag,
ret = syncop_readv (from, src, read_size,
offset, 0, &vector, &count, &iobref, NULL,
- NULL, NULL);
+ NULL);
if (!ret || (ret < 0)) {
*fop_errno = -ret;
break;
@@ -1206,8 +1206,7 @@ __dht_rebalance_migrate_data (xlator_t *this, gf_defrag_info_t *defrag,
}
ret = syncop_writev (to, dst, vector, count,
- offset, iobref, 0, NULL, NULL,
- xdata, NULL);
+ offset, iobref, 0, xdata, NULL);
if (ret < 0) {
*fop_errno = -ret;
}
diff --git a/xlators/experimental/fdl/src/gen_recon.py b/xlators/experimental/fdl/src/gen_recon.py
index 75323ea3dd9..db7f7bbc31c 100755
--- a/xlators/experimental/fdl/src/gen_recon.py
+++ b/xlators/experimental/fdl/src/gen_recon.py
@@ -142,7 +142,7 @@ def get_special_subs (name, args, fop_type):
# is not stored in or read from the journal. There are other ways to
# do that, but this is the only place we need anything similar and we
# already have to treat it as a special case so this is simplest.
- s_args_str = 'fd, &vector, 1, off, iobref, flags, &preop, &postop, xdata'
+ s_args_str = 'fd, &vector, 1, off, iobref, flags, xdata'
elif name == 'symlink':
# Swap 'linkpath' and 'loc'.
s_args_str = '&loc, linkpath, &iatt, xdata'
diff --git a/xlators/features/bit-rot/src/bitd/bit-rot.c b/xlators/features/bit-rot/src/bitd/bit-rot.c
index a9b70b61f8a..db97ce54735 100644
--- a/xlators/features/bit-rot/src/bitd/bit-rot.c
+++ b/xlators/features/bit-rot/src/bitd/bit-rot.c
@@ -296,7 +296,7 @@ br_object_read_block_and_sign (xlator_t *this, fd_t *fd, br_child_t *child,
ret = syncop_readv (child->xl, fd,
size, offset, 0, &iovec, &count, &iobref, NULL,
- NULL, NULL);
+ NULL);
if (ret < 0) {
gf_msg (this->name, GF_LOG_ERROR, errno, BRB_MSG_READV_FAILED,
diff --git a/xlators/features/snapview-server/src/snapview-server.c b/xlators/features/snapview-server/src/snapview-server.c
index 18f00d7d2d8..8fee435de64 100644
--- a/xlators/features/snapview-server/src/snapview-server.c
+++ b/xlators/features/snapview-server/src/snapview-server.c
@@ -1990,7 +1990,7 @@ svs_readv (call_frame_t *frame, xlator_t *this,
goto out;
}
- ret = glfs_pread (glfd, iobuf->ptr, size, offset, 0, &fstatbuf);
+ ret = glfs_pread (glfd, iobuf->ptr, size, offset, 0);
if (ret < 0) {
op_ret = -1;
op_errno = errno;
@@ -2005,6 +2005,16 @@ svs_readv (call_frame_t *frame, xlator_t *this,
iobref = iobref_new ();
iobref_add (iobref, iobuf);
+
+ ret = glfs_fstat (glfd, &fstatbuf);
+ if (ret) {
+ op_ret = -1;
+ op_errno = errno;
+ gf_log (this->name, GF_LOG_ERROR, "glfs_fstat failed after "
+ "readv on %s", uuid_utoa (fd->inode->gfid));
+ goto out;
+ }
+
iatt_from_stat (&stbuf, &fstatbuf);
gf_uuid_copy (stbuf.ia_gfid, fd->inode->gfid);
svs_fill_ino_from_gfid (&stbuf);
diff --git a/xlators/storage/posix/src/posix-entry-ops.c b/xlators/storage/posix/src/posix-entry-ops.c
index 377fece5610..d8ec34a742b 100644
--- a/xlators/storage/posix/src/posix-entry-ops.c
+++ b/xlators/storage/posix/src/posix-entry-ops.c
@@ -2278,7 +2278,7 @@ posix_put (call_frame_t *frame, xlator_t *this, loc_t *loc,
}
op_ret = syncop_writev (this, fd, vector, count, offset, iobref,
- flags, NULL, NULL, xdata, NULL);
+ flags, xdata, NULL);
if (op_ret < 0) {
op_errno = errno;
gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_WRITE_FAILED,