diff --git a/xlators/performance/write-behind/src/write-behind.c b/xlators/performance/write-behind/src/write-behind.c index 43956a9..d97812a 100644 --- a/xlators/performance/write-behind/src/write-behind.c +++ b/xlators/performance/write-behind/src/write-behind.c @@ -1667,7 +1667,8 @@ __wb_get_other_requests (list_head_t *list, list_head_t *other_requests) int32_t wb_stack_unwind (list_head_t *unwinds) { - struct iatt buf = {0,}; + struct iatt prebuf = {0,}; + struct iatt postbuf = {0,}; wb_request_t *request = NULL, *dummy = NULL; call_frame_t *frame = NULL; wb_local_t *local = NULL; @@ -1678,8 +1679,15 @@ wb_stack_unwind (list_head_t *unwinds) frame = request->stub->frame; local = frame->local; - STACK_UNWIND (frame, local->op_ret, local->op_errno, &buf, - &buf); + /* + * There are probably a lot of other problems with returning + * these bogus iatts, but this fix at least gives us enough + * information for features/quota to work (sort of). + */ + postbuf.ia_blocks = (request->write_size + 511) / 512; + + STACK_UNWIND (frame, local->op_ret, local->op_errno, + &prebuf, &postbuf); ret = wb_request_unref (request); if (ret == 0) {