[XFS] Fix xfs_free_extent related NULL pointer dereference.
authorNathan Scott <nathans@sgi.com>
Thu, 10 Aug 2006 04:40:41 +0000 (14:40 +1000)
committerNathan Scott <nathans@sgi.com>
Thu, 10 Aug 2006 04:40:41 +0000 (14:40 +1000)
commit0e1edbd99994270023cea5afe593f972eb09a778
treee4b2618172c17426d200ec435c24daaf606e2437
parent9f737633e6ee54fc174282d49b2559bd2208391d
[XFS] Fix xfs_free_extent related NULL pointer dereference.

We recently fixed an out-of-space deadlock in XFS, and part of that fix
involved the addition of the XFS_ALLOC_FLAG_FREEING flag to some of the
space allocator calls to indicate they're freeing space, not allocating
it. There was a missed xfs_alloc_fix_freelist condition test that did not
correctly test "flags". The same test would also test an uninitialised
structure field (args->userdata) and depending on its value either would
or would not return early with a critical buffer pointer set to NULL.

This fixes that up, adds asserts to several places to catch future botches
of this nature, and skips sections of xfs_alloc_fix_freelist that are
irrelevent for the space-freeing case.

SGI-PV: 955303
SGI-Modid: xfs-linux-melb:xfs-kern:26743a

Signed-off-by: Nathan Scott <nathans@sgi.com>
fs/xfs/xfs_alloc.c