diff options
Diffstat (limited to 'xlators/cluster/afr/src/afr-inode-write.c')
| -rw-r--r-- | xlators/cluster/afr/src/afr-inode-write.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-inode-write.c b/xlators/cluster/afr/src/afr-inode-write.c index 7c3d38e9020..c619536ca17 100644 --- a/xlators/cluster/afr/src/afr-inode-write.c +++ b/xlators/cluster/afr/src/afr-inode-write.c @@ -296,6 +296,13 @@ afr_do_writev (call_frame_t *frame, xlator_t *this)          local->transaction.main_frame = frame;          if (local->fd->flags & O_APPEND) { +               /* +                * Backend vfs ignores the 'offset' for append mode fd so +                * locking just the region provided for the writev does not +                * give consistency gurantee. The actual write may happen at a +                * completely different range than the one provided by the +                * offset, len in the fop. So lock the entire file. +                */                  local->transaction.start   = 0;                  local->transaction.len     = 0;          } else {  | 
