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: Boaz Harrosh <bharrosh@panasas.com>
This commit is contained in:
parent
af402ab2b0
commit
861d66601a
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue