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>
This commit is contained in:
Anand Avati 2013-11-25 03:13:17 -08:00
parent e3f80f53b5
commit d4c9d342f6

View File

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