diff options
Diffstat (limited to 'xlators/features/snapview-server/src/snapview-server.c')
-rw-r--r-- | xlators/features/snapview-server/src/snapview-server.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/xlators/features/snapview-server/src/snapview-server.c b/xlators/features/snapview-server/src/snapview-server.c index b00a1222026..266a02c8c60 100644 --- a/xlators/features/snapview-server/src/snapview-server.c +++ b/xlators/features/snapview-server/src/snapview-server.c @@ -2255,7 +2255,7 @@ svs_readv(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, 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; @@ -2270,6 +2270,18 @@ svs_readv(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, 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); |