• I
    exofs: clean up the correct page collection on write error · af402ab2
    Idan Kedar 提交于
    if ore_write() fails, we would unlock the pages of pcol, which is now
    empty, rather than pcol_copy which owns the pages when ore_write() is
    called. this means that no pages will actually be unlocked
    (pcol.nr_pages == 0) and the writing process (more accurately, the
    syncing process) will hang waiting for a writeback notification that
    never comes.
    
    moreover, if ore_write() fails, pcol_free() is called for pcol, whereas
    pcol_copy is the object owning the ore_io_state, thus leaking the
    ore_io_state.
    
    [Boaz]
    I have simplified Idan's original patch a bit, everything else still
    holds
    Signed-off-by: NIdan Kedar <idank@tonian.com>
    Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
    af402ab2
inode.c 36.6 KB