diff options
author | Vikas Gorur <vikas@gluster.com> | 2009-07-14 08:05:14 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2009-07-27 09:32:35 -0700 |
commit | c045d4264bb83fb5e5384379aa3a824fe3038dc8 (patch) | |
tree | f9e61417252afc77b93095b6b851550d1ac443bb /xlators/cluster/afr/src/afr.h | |
parent | 683fda4bf09c66f2ec7a47a8e4a5f08461031352 (diff) |
Return stat info from read-child in all the inode-write ops
Also modifies the inode-write ops to wait for the call
to read-child to return (whether success or failure)
before unwinding.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 125 (stat information not returned from the same subvolume always)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=125
Diffstat (limited to 'xlators/cluster/afr/src/afr.h')
-rw-r--r-- | xlators/cluster/afr/src/afr.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index a4facf207..1e9ced4ed 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -145,6 +145,7 @@ typedef struct _afr_local { unsigned int govinda_gOvinda; unsigned int read_child_index; + unsigned char read_child_returned; pid_t saved_pid; @@ -182,6 +183,7 @@ typedef struct _afr_local { struct { inode_t *inode; struct stat buf; + struct stat read_child_buf; ino_t ino; dict_t *xattr; } lookup; @@ -268,12 +270,14 @@ typedef struct _afr_local { ino_t ino; mode_t mode; struct stat buf; + struct stat read_child_buf; } chmod; struct { ino_t ino; mode_t mode; struct stat buf; + struct stat read_child_buf; } fchmod; struct { @@ -281,6 +285,7 @@ typedef struct _afr_local { uid_t uid; gid_t gid; struct stat buf; + struct stat read_child_buf; } chown; struct { @@ -288,11 +293,13 @@ typedef struct _afr_local { uid_t uid; gid_t gid; struct stat buf; + struct stat read_child_buf; } fchown; struct { ino_t ino; struct stat buf; + struct stat read_child_buf; int32_t op_ret; @@ -306,18 +313,21 @@ typedef struct _afr_local { ino_t ino; off_t offset; struct stat buf; + struct stat read_child_buf; } truncate; struct { ino_t ino; off_t offset; struct stat buf; + struct stat read_child_buf; } ftruncate; struct { ino_t ino; struct timespec tv[2]; struct stat buf; + struct stat read_child_buf; } utimens; struct { |