Darrick J. Wong
fe0be23e68
xfs: reserve enough blocks to handle btree splits when remapping
...
In xfs_reflink_end_cow, we erroneously reserve only enough blocks to
handle adding 1 extent. This is problematic if we fragment free space,
have to do CoW, and then have to perform multiple bmap btree expansions.
Furthermore, the BUI recovery routine doesn't reserve /any/ blocks to
handle btree splits, so log recovery fails after our first error causes
the filesystem to go down.
Therefore, refactor the transaction block reservation macros until we
have a macro that works for our deferred (re)mapping activities, and fix
both problems by using that macro.
With 1k blocks we can hit this fairly often in g/187 if the scratch fs
is big enough.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
2017-05-03 13:21:40 -07:00
..
2017-03-03 21:44:35 -08:00
2017-03-02 08:42:31 +01:00
2017-03-16 16:29:30 +00:00
2017-03-02 08:42:31 +01:00
2017-03-02 08:42:31 +01:00
2016-12-24 11:46:01 -08:00
2017-03-23 11:39:33 -07:00
2017-03-02 08:42:31 +01:00
2017-03-03 11:38:56 -08:00
2017-03-03 16:00:59 -08:00
2017-03-03 11:38:56 -08:00
2016-12-24 11:46:01 -08:00
2017-03-25 15:36:56 -07:00
2017-02-23 20:33:51 -08:00
2017-03-09 18:23:27 -08:00
2017-03-03 11:38:56 -08:00
2016-12-24 11:46:01 -08:00
2017-01-14 11:37:18 +01:00
2017-03-03 11:38:56 -08:00
2017-03-02 08:42:31 +01:00
2017-03-26 10:29:21 -07:00
2017-03-20 10:00:18 -04:00
2017-03-09 17:01:10 -08:00
2017-03-02 10:09:00 +11:00
2017-03-03 12:14:13 -08:00
2017-03-15 10:06:07 -04:00
2017-03-03 21:44:35 -08:00
2017-03-02 08:42:31 +01:00
2016-12-09 16:45:04 +01:00
2017-03-02 08:42:32 +01:00
2017-03-02 08:42:32 +01:00
2017-03-02 08:42:31 +01:00
2017-03-15 15:08:48 -04:00
2017-03-02 08:42:32 +01:00
2017-02-27 18:43:46 -08:00
2017-03-17 10:25:59 +09:00
2017-03-02 08:42:29 +01:00
2017-03-02 20:51:15 -05:00
2017-03-03 10:16:38 -08:00
2017-03-17 14:16:22 -07:00
2016-11-18 10:59:15 -05:00
2017-03-03 11:38:56 -08:00
2017-03-02 08:42:32 +01:00
2017-03-02 08:42:32 +01:00
2017-03-02 08:42:32 +01:00
2017-03-09 18:23:27 -08:00
2017-03-02 08:42:31 +01:00
2016-12-24 11:46:01 -08:00
2017-03-03 11:38:56 -08:00
2017-03-08 10:42:13 -08:00
2017-03-03 11:38:56 -08:00
2017-02-24 17:46:57 -08:00
2017-03-02 08:42:31 +01:00
2016-12-24 11:46:01 -08:00
2017-02-27 18:43:46 -08:00
2017-01-24 16:26:14 -08:00
2017-02-24 17:46:57 -08:00
2016-10-14 12:18:50 -07:00
2017-03-02 20:51:15 -05:00
2017-03-02 20:51:15 -05:00
2017-03-02 20:51:15 -05:00
2016-12-24 11:46:01 -08:00
2017-05-03 13:21:40 -07:00
2017-03-03 10:16:38 -08:00
2016-12-24 11:46:01 -08:00
2017-03-02 08:42:29 +01:00
2017-03-02 20:51:15 -05:00
2017-03-02 08:42:36 +01:00
2017-03-02 08:42:39 +01:00
2017-03-02 08:42:39 +01:00
2017-03-02 08:42:36 +01:00
2017-03-02 08:42:37 +01:00
2017-03-02 08:56:59 -07:00
2017-03-02 08:42:37 +01:00
2017-02-01 09:13:51 +01:00
2016-12-24 11:46:01 -08:00
2017-03-02 08:42:31 +01:00
2017-03-02 08:42:36 +01:00
2017-03-02 08:42:37 +01:00
2017-01-10 13:34:43 +13:00
2016-12-24 11:46:01 -08:00
2017-02-27 18:43:46 -08:00
2017-03-02 08:42:32 +01:00
2017-03-02 08:42:32 +01:00
2017-03-02 08:42:35 +01:00
2017-03-02 08:42:35 +01:00
2016-12-24 11:46:01 -08:00
2017-03-02 08:42:31 +01:00
2017-03-02 08:42:29 +01:00
2016-12-24 11:46:01 -08:00
2017-03-02 08:42:35 +01:00
2017-03-13 08:27:34 -06:00
2017-01-30 16:32:25 -08:00
2017-03-02 08:42:37 +01:00
2017-04-25 09:40:40 -07:00
2017-01-24 16:26:14 -08:00
2016-10-24 08:12:35 -02:00
2017-03-03 11:38:56 -08:00
2016-12-24 11:46:01 -08:00
2016-12-14 23:48:11 -05:00
2016-12-03 15:55:01 -05:00
2017-02-04 00:01:06 +13:00
2017-02-27 18:43:46 -08:00
2017-03-02 06:41:22 -05:00
2017-03-02 08:42:38 +01:00
2017-02-03 14:35:43 +13:00
2017-02-07 15:05:04 +01:00
2016-12-24 11:46:01 -08:00
2017-02-04 00:01:06 +13:00
2017-02-04 00:01:06 +13:00
2017-03-02 08:42:31 +01:00
2017-03-02 08:42:38 +01:00
2017-03-03 10:16:38 -08:00
2016-12-24 11:46:01 -08:00
2017-03-02 08:42:29 +01:00
2016-12-24 11:46:01 -08:00
2017-03-03 10:16:38 -08:00
2017-03-03 11:38:56 -08:00
2016-12-05 19:03:49 -05:00
2017-02-23 20:33:51 -08:00
2017-02-20 16:51:23 +01:00
2017-03-01 12:53:44 +01:00
2017-03-10 08:59:07 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00