diff options
author | Christoph Hellwig <hch@lst.de> | 2007-05-24 01:21:11 -0400 |
---|---|---|
committer | Tim Shimmin <tes@chook.melbourne.sgi.com> | 2007-07-14 01:22:50 -0400 |
commit | ca165b88927e41ad18908d7b37f08ef81eae0bf8 (patch) | |
tree | dbe4595d1e14fef288d321cd4137bc402a4ce334 /fs/xfs/linux-2.6/xfs_buf.c | |
parent | 3db296f341b5902c4f9317022ae5d4da2d59d598 (diff) |
[XFS] Fix double free in xfs_buf_get_noaddr error handling path
SGI-PV: 964983
SGI-Modid: xfs-linux-melb:xfs-kern:28639a
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_buf.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_buf.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 208daf58b826..192aa0650919 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c | |||
@@ -792,8 +792,9 @@ xfs_buf_get_noaddr( | |||
792 | fail_free_mem: | 792 | fail_free_mem: |
793 | while (--i >= 0) | 793 | while (--i >= 0) |
794 | __free_page(bp->b_pages[i]); | 794 | __free_page(bp->b_pages[i]); |
795 | _xfs_buf_free_pages(bp); | ||
795 | fail_free_buf: | 796 | fail_free_buf: |
796 | xfs_buf_free(bp); | 797 | xfs_buf_deallocate(bp); |
797 | fail: | 798 | fail: |
798 | return NULL; | 799 | return NULL; |
799 | } | 800 | } |