Commit 861d6660 authored by Boaz Harrosh's avatar Boaz Harrosh

exofs: don't leak io_state and pages on read error

Same bug as fixed by Idan for write_exec was in read_exec.
Fix the io_state leak and pages state on read error.

Also while at it:
The if (!pcol->read_4_write) at the error path is redundant
because all goto err; are after the if (pcol->read_4_write)
bale out.
Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
parent af402ab2
...@@ -361,12 +361,12 @@ static int read_exec(struct page_collect *pcol) ...@@ -361,12 +361,12 @@ static int read_exec(struct page_collect *pcol)
return 0; return 0;
err: err:
if (!pcol->read_4_write) if (!pcol_copy) /* Failed before ownership transfer */
_unlock_pcol_pages(pcol, ret, READ); pcol_copy = pcol;
_unlock_pcol_pages(pcol_copy, ret, READ);
pcol_free(pcol); pcol_free(pcol_copy);
kfree(pcol_copy); kfree(pcol_copy);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment