Nathan Scott
0e1edbd999
[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>
2006-08-10 14:40:41 +10:00
..
2006-07-28 17:05:13 +10:00
2006-07-28 17:04:26 +10:00
2006-06-09 15:29:40 +10:00
2006-01-09 20:48:03 +01:00
2006-06-19 08:40:27 +10:00
2005-09-05 11:47:01 +10:00
2006-06-20 14:53:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-09 17:07:12 +10:00
2006-03-29 08:55:14 +10:00
2006-06-20 13:04:51 +10:00
2005-11-02 15:11:25 +11:00
2006-08-10 14:40:41 +10:00
2006-06-09 14:55:18 +10:00
2006-01-12 10:29:53 +11:00
2006-06-20 13:04:51 +10:00
2006-03-17 17:29:18 +11:00
2006-03-17 17:29:25 +11:00
2006-06-20 13:04:51 +10:00
2006-06-09 17:00:52 +10:00
2006-03-29 08:55:14 +10:00
2006-06-27 16:12:15 +10:00
2005-11-02 14:58:39 +11:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2006-03-14 13:30:23 +11:00
2006-06-20 13:04:51 +10:00
2006-06-09 14:48:12 +10:00
2006-06-20 13:04:51 +10:00
2005-11-02 15:11:25 +11:00
2006-06-20 13:04:51 +10:00
2005-11-02 14:58:39 +11:00
2006-06-09 17:00:52 +10:00
2006-03-31 13:04:17 +10:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-09 14:48:12 +10:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-03-17 17:27:56 +11:00
2006-06-20 13:04:51 +10:00
2006-06-09 14:48:37 +10:00
2006-06-20 13:04:51 +10:00
2006-03-17 17:28:18 +11:00
2006-06-20 13:04:51 +10:00
2006-03-17 17:27:07 +11:00
2006-06-20 13:04:51 +10:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-09 16:48:30 +10:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-03-31 13:04:17 +10:00
2006-06-20 13:04:51 +10:00
2006-06-09 14:55:38 +10:00
2006-06-09 14:54:19 +10:00
2006-06-20 13:04:51 +10:00
2006-01-11 15:30:08 +11:00
2006-06-20 13:04:51 +10:00
2005-11-02 15:11:25 +11:00
2006-06-20 13:04:51 +10:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2006-06-09 14:55:38 +10:00
2006-07-28 17:05:51 +10:00
2006-06-09 17:00:52 +10:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2005-11-25 16:41:33 +11:00
2006-06-20 13:04:51 +10:00
2006-06-09 15:29:22 +10:00
2006-01-11 21:02:47 +11:00
2006-06-28 10:13:52 +10:00
2005-11-02 14:58:39 +11:00
2006-07-28 17:04:44 +10:00
2006-03-29 08:55:14 +10:00
2005-11-02 14:58:39 +11:00
2006-06-27 19:09:16 -07:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-09 16:48:30 +10:00
2005-11-03 16:14:31 +11:00
2006-06-20 13:04:51 +10:00
2006-06-28 08:42:26 +10:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2006-06-19 08:39:53 +10:00
2006-01-11 15:33:02 +11:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-09 15:29:40 +10:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2006-06-20 13:04:51 +10:00
2006-06-27 16:12:40 +10:00
2005-11-02 14:58:39 +11:00
2006-06-20 13:04:51 +10:00
2006-06-09 17:07:12 +10:00
2006-07-28 17:05:13 +10:00
2006-06-27 12:45:17 +10:00
2005-11-09 07:55:57 -08:00