From e5411f154f5f815a9b9d9aec647ee72cc9662541 Mon Sep 17 00:00:00 2001 From: shishir gowda Date: Tue, 4 Dec 2012 15:39:45 +0530 Subject: storage/posix: if create returns EXIST, donot set gfid/xattrs Change-Id: I9f2b75b10bde428d36d6516aa09c18e590d17ed9 BUG: 864801 Signed-off-by: shishir gowda Reviewed-on: https://code.engineering.redhat.com/gerrit/1896 Reviewed-by: Vijay Bellur Tested-by: Vijay Bellur --- xlators/storage/posix/src/posix.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index 58e7b45411a..8cc4b64da5f 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -1727,6 +1727,9 @@ posix_create (call_frame_t *frame, xlator_t *this, goto out; } + if (was_present) + goto fill_stat; + op_ret = posix_gfid_set (this, real_path, loc, xdata); if (op_ret) { gf_log (this->name, GF_LOG_ERROR, @@ -1757,6 +1760,7 @@ posix_create (call_frame_t *frame, xlator_t *this, strerror (errno)); } +fill_stat: op_ret = posix_fdstat (this, _fd, &stbuf); if (op_ret == -1) { op_errno = errno; -- cgit