diff options
author | Anand Avati <avati@redhat.com> | 2013-11-25 03:13:17 -0800 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2013-11-26 10:32:00 -0800 |
commit | d4c9d342f64636304720d0091a605c85ea9f0e4d (patch) | |
tree | f293396847dbe04c9360ef8f392396c27ff36a1a | |
parent | e3f80f53b536eba17e35c184e9da3e4d59c30b58 (diff) |
write-behind: handle iobref_merge() error gracefully
.. by UNWINDing ENOMEM error, rather than crashing.
Change-Id: Ica2d6399eaf7e381e7ebc41155620559c139c4d3
BUG: 1034398
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/6349
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@gmail.com>
-rw-r--r-- | xlators/performance/write-behind/src/write-behind.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/xlators/performance/write-behind/src/write-behind.c b/xlators/performance/write-behind/src/write-behind.c index 95c5921c6bd..2be211fbf7b 100644 --- a/xlators/performance/write-behind/src/write-behind.c +++ b/xlators/performance/write-behind/src/write-behind.c @@ -766,8 +766,9 @@ wb_fulfill_head (wb_inode_t *wb_inode, wb_request_t *head) list_for_each_entry (req, &head->winds, winds) { WB_IOV_LOAD (vector, count, req, head); - iobref_merge (head->stub->args.iobref, - req->stub->args.iobref); + if (iobref_merge (head->stub->args.iobref, + req->stub->args.iobref)) + goto err; } if (wb_fd_err (head->fd, this, NULL)) { |