path: root/xlators/features
diff options
authorAtin Mukherjee <>2014-04-23 17:21:41 +0530
committerVijay Bellur <>2014-05-03 07:28:16 -0700
commit11b0ea3d79445e3773d450132121387b67d7bc9a (patch)
treede7ed2a0db5f38c45c3a8788cbacbb2a0b9e7aa4 /xlators/features
parent0088e318c1218191535ea0baa04b4fe858412f54 (diff)
barrier : barrier O_SYNC write incorrect flag check
barrier_writev function was doing the following check to determine whether its a O_SYNC write or not: if (!(flags & O_SYNC)) The problem here is this flag is not fd's flag and gfapi write does not copy open call fd's flag into write flag because of which O_SYNC writes were not getting barriered even if barrier was enabled. The check has been modified as: if (!(fd->flags & (O_SYNC | O_DSYNC))) Change-Id: I07b23852d150b81c7317100ca6d22d082ad897cd BUG: 1090488 Signed-off-by: Atin Mukherjee <> Reviewed-on: Reviewed-by: Varun Shastry <> Reviewed-by: Santosh Pradhan <> Tested-by: Gluster Build System <> Reviewed-by: Vijay Bellur <>
Diffstat (limited to 'xlators/features')
1 files changed, 1 insertions, 1 deletions
diff --git a/xlators/features/barrier/src/barrier.c b/xlators/features/barrier/src/barrier.c
index 5edb9cdd392..5b48184d4c7 100644
--- a/xlators/features/barrier/src/barrier.c
+++ b/xlators/features/barrier/src/barrier.c
@@ -125,7 +125,7 @@ barrier_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,
struct iovec *vector, int32_t count, off_t off, uint32_t flags,
struct iobref *iobref, dict_t *xdata)
- if (!(flags & O_SYNC)) {
+ if (!(fd->flags & (O_SYNC | O_DSYNC))) {
fd, vector, count, off, flags, iobref, xdata);