diff options
author | Boaz Harrosh <bharrosh@panasas.com> | 2009-06-08 12:28:41 -0400 |
---|---|---|
committer | Boaz Harrosh <bharrosh@panasas.com> | 2009-06-21 10:53:44 -0400 |
commit | b76a3f93d01fc93a87cb6eba4e854ffe378b4bac (patch) | |
tree | 528b1a401be9b188cebf59850c2215d7260929aa /fs/exofs/inode.c | |
parent | c277331d5fbaae5772ed19862feefa91f4e477d3 (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>
Diffstat (limited to 'fs/exofs/inode.c')
-rw-r--r-- | fs/exofs/inode.c | 3 |
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) | |||
295 | err: | 295 | err: |
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); |