glusterfs/wb-quota.patch
2011-02-03 17:10:48 -07:00

33 lines
1.3 KiB
Diff

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) {