summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikas Gorur <vikas@gluster.com>2009-07-27 09:31:45 +0000
committerAnand V. Avati <avati@dev.gluster.com>2009-07-27 11:33:49 -0700
commit53438fa2826ea6a5ea9fd9751d797c2875c2dca5 (patch)
tree132faaa5b36c9423fd08bbb4bcf8c908a68cda8e
parent5a41851e86177e82a8d4ae1457972d5011466eef (diff)
cluster/afr: Return same inode number in stat buf for readv_cbk
Remember the inode number that had been returned in lookup_cbk and set the stat buf->ino to the same. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
-rw-r--r--xlators/cluster/afr/src/afr-inode-read.c3
-rw-r--r--xlators/cluster/afr/src/afr.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-inode-read.c b/xlators/cluster/afr/src/afr-inode-read.c
index d2811acf0..fa9a1e7fc 100644
--- a/xlators/cluster/afr/src/afr-inode-read.c
+++ b/xlators/cluster/afr/src/afr-inode-read.c
@@ -733,6 +733,8 @@ afr_readv_cbk (call_frame_t *frame, void *cookie,
out:
if (unwind) {
+ buf->st_ino = local->cont.readv.ino;
+
AFR_STACK_UNWIND (frame, op_ret, op_errno, vector, count, buf,
iobref);
}
@@ -792,6 +794,7 @@ afr_readv (call_frame_t *frame, xlator_t *this,
local->fd = fd_ref (fd);
+ local->cont.readv.ino = fd->inode->ino;
local->cont.readv.size = size;
local->cont.readv.offset = offset;
diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h
index 87ef26333..d9a3435c3 100644
--- a/xlators/cluster/afr/src/afr.h
+++ b/xlators/cluster/afr/src/afr.h
@@ -231,6 +231,7 @@ typedef struct _afr_local {
} getxattr;
struct {
+ ino_t ino;
size_t size;
off_t offset;
int last_tried;