[XFS] Fix vmalloc leak on mount/unmount.
authorDavid Chinner <dgc@sgi.com>
Thu, 24 May 2007 05:21:57 +0000 (15:21 +1000)
committerTim Shimmin <tes@chook.melbourne.sgi.com>
Sat, 14 Jul 2007 05:23:23 +0000 (15:23 +1000)
When setting the length of the iclogbuf to write out we should just be
changing the desired byte count rather completely reassociating the buffer
memory with the buffer. Reassociating the buffer memory changes the
apparent length of the buffer and hence when we free the buffer, we don't
free all the vmap()d space we originally allocated.

SGI-PV: 964983
SGI-Modid: xfs-linux-melb:xfs-kern:28640a

Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Tim Shimmin <tes@sgi.com>
fs/xfs/xfs_log.c

index 5bb902056e61734a44cc4ccad1e223fd992065bf..fb50fd400e538e53b9abdccf160c1290475f88b6 100644 (file)
@@ -1436,7 +1436,7 @@ xlog_sync(xlog_t          *log,
        } else {
                iclog->ic_bwritecnt = 1;
        }
-       XFS_BUF_SET_PTR(bp, (xfs_caddr_t) &(iclog->ic_header), count);
+       XFS_BUF_SET_COUNT(bp, count);
        XFS_BUF_SET_FSPRIVATE(bp, iclog);       /* save for later */
        XFS_BUF_ZEROFLAGS(bp);
        XFS_BUF_BUSY(bp);