aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_buf.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2007-05-24 01:21:11 -0400
committerTim Shimmin <tes@chook.melbourne.sgi.com>2007-07-14 01:22:50 -0400
commitca165b88927e41ad18908d7b37f08ef81eae0bf8 (patch)
treedbe4595d1e14fef288d321cd4137bc402a4ce334 /fs/xfs/linux-2.6/xfs_buf.c
parent3db296f341b5902c4f9317022ae5d4da2d59d598 (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.c3
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}