diff options
author | Raghavendra G <rgowdapp@redhat.com> | 2013-07-29 23:43:51 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-09-10 01:22:49 -0700 |
commit | 8641a8641c4efec9cc7ac20108f2461a0300d01c (patch) | |
tree | 84c04b882a3f549b158b90ea99d752d6ec072ca7 /xlators/bindings | |
parent | 77a7ae0fbf5bf1a0eaa2d18a31bd0c6ef1913ef8 (diff) |
performance/write-behind: invoke request queue processing if
we find fd marked bad while trying to fulfill lies.
* flush was queued behind some unfulfilled write.
* A previously wound write returned an error and hence fd was marked
bad with corresponding error.
* wb_fulfill_head (invocation probably rooted in wb_flush), before
winding checks for failures of previous writes and since there was a
failure, calls wb_head_done without even winding one request in head.
* wb_head_done unrefs all the requests in list "head".
* since flush was last operation on fd (and most likely last operation
on inode itself), no one invokes wb_process_queue and flush is stuck
in request queue for eternity.
Change-Id: I3b5b114a1c401d477dd7ff64fb6119b43fda2d18
BUG: 988642
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: http://review.gluster.org/5883
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'xlators/bindings')
0 files changed, 0 insertions, 0 deletions