]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit - repair/phase4.c
xfs_repair: unconditionally free blockmaps when threads complete
authorEric Sandeen <sandeen@sandeen.net>
Mon, 24 Aug 2015 01:52:45 +0000 (11:52 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 24 Aug 2015 01:52:45 +0000 (11:52 +1000)
commitbd7581425a223f58f1730e5a9ea14c8f0b51e0a2
treee0428d5b2ac07fb4aa19dccba06a70704e18a0bf
parent4491caa3975807766c6e084aa4580b3cfd8b5582
xfs_repair: unconditionally free blockmaps when threads complete

blkmap_free() doesn't actually free the block map unless it's
inordinately large; this keeps us from constantly freeing
and re-allocating blockmaps for each inode, which makes sense.

However, once the threads which have allocated these structures
exit, we should actually free them; they can grow up to 2MB
for each of the data and attr maps, for each thread, and not
be freed through the normal blkmap_free() test.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
repair/bmap.c
repair/bmap.h
repair/phase3.c
repair/phase4.c