aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoaz Harrosh <bharrosh@panasas.com>2009-06-08 12:28:41 -0400
committerBoaz Harrosh <bharrosh@panasas.com>2009-06-21 10:53:44 -0400
commitb76a3f93d01fc93a87cb6eba4e854ffe378b4bac (patch)
tree528b1a401be9b188cebf59850c2215d7260929aa
parentc277331d5fbaae5772ed19862feefa91f4e477d3 (diff)
exofs: Fix bio leak in error handling path (sync read)
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>
-rw-r--r--fs/exofs/inode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c
index 77d0a295eb1c..bb5d6ed0f7a8 100644
--- a/fs/exofs/inode.c
+++ b/fs/exofs/inode.c
@@ -295,6 +295,9 @@ static int read_exec(struct page_collect *pcol, bool is_sync)
295err: 295err:
296 if (!is_sync) 296 if (!is_sync)
297 _unlock_pcol_pages(pcol, ret, READ); 297 _unlock_pcol_pages(pcol, ret, READ);
298 else /* Pages unlocked by caller in sync mode only free bio */
299 pcol_free(pcol);
300
298 kfree(pcol_copy); 301 kfree(pcol_copy);
299 if (or) 302 if (or)
300 osd_end_request(or); 303 osd_end_request(or);