]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
exofs: Fix bio leak in error handling path (sync read)
authorBoaz Harrosh <bharrosh@panasas.com>
Mon, 8 Jun 2009 16:28:41 +0000 (19:28 +0300)
committerBoaz Harrosh <bharrosh@panasas.com>
Sun, 21 Jun 2009 14:53:44 +0000 (17:53 +0300)
When failing a read request in the sync path, called from
write_begin, I forgot to free the allocated bio, fix it.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
fs/exofs/inode.c

index 77d0a295eb1cd3e95443da014fc9801cf64f5aff..bb5d6ed0f7a85905f97f2ff846fe563ed3cb2f37 100644 (file)
@@ -295,6 +295,9 @@ static int read_exec(struct page_collect *pcol, bool is_sync)
 err:
        if (!is_sync)
                _unlock_pcol_pages(pcol, ret, READ);
+       else /* Pages unlocked by caller in sync mode only free bio */
+               pcol_free(pcol);
+
        kfree(pcol_copy);
        if (or)
                osd_end_request(or);