Dave Chinner
fe0da76731
xfs: make AIL target updates and compares 32bit safe.
...
The recent conversion of the xfsaild functionality to a work queue
introduced a hard-to-hit log space grant hang. One of the problems
noticed was that updates of the push target are not 32 bit safe as
the target is a 64 bit value.
We cannot copy a 64 bit LSN without the possibility of corrupting
the result when racing with another updating thread. We have
function to do this update safely without needing to care about
32/64 bit issues - xfs_trans_ail_copy_lsn() - so use that when
updating the AIL push target.
Also move the reading of the target in the push work inside the AIL
lock, and use XFS_LSN_CMP() for the unlocked comparison during work
termination to close read holes as well.
Signed-off-by: Dave Chinner <david@fromorbit.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Alex Elder <aelder@sgi.com >
(cherry picked from commit fd5670f22f )
2011-05-09 18:35:04 -05:00
..
2011-04-15 15:26:14 -05:00
2011-03-31 11:26:23 -03:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-24 10:16:26 -07:00
2011-04-26 23:31:11 -07:00
2011-03-31 11:26:23 -03:00
2011-05-04 12:56:45 -07:00
2011-05-03 03:42:15 +00:00
2011-03-25 17:45:16 -07:00
2011-03-31 11:26:23 -03:00
2011-02-18 08:07:18 -08:00
2011-03-22 17:44:17 -07:00
2011-03-31 11:26:23 -03:00
2011-04-25 18:49:46 -05:00
2011-03-10 08:52:07 +01:00
2011-03-31 11:26:23 -03:00
2011-03-15 02:21:44 -04:00
2011-03-31 11:26:23 -03:00
2011-04-08 07:35:17 -07:00
2011-04-11 15:45:47 -07:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-04-25 18:14:10 -07:00
2011-03-24 10:16:26 -07:00
2011-03-24 10:16:26 -07:00
2011-05-09 09:04:24 -07:00
2011-03-22 17:44:02 -07:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-04-11 15:45:47 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-01-25 15:24:47 -05:00
2011-05-03 16:10:25 -07:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-04-27 16:20:01 -04:00
2011-03-31 11:26:23 -03:00
2011-04-20 11:03:01 -04:00
2011-04-05 23:51:48 +02:00
2011-04-07 11:14:49 -07:00
2011-03-31 11:26:23 -03:00
2011-04-26 23:31:11 -07:00
2011-03-24 10:16:26 -07:00
2011-05-06 07:46:37 -07:00
2011-04-18 10:36:54 -07:00
2011-03-31 11:26:23 -03:00
2011-03-10 08:52:07 +01:00
2011-04-08 07:35:17 -07:00
2011-04-14 16:06:56 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-01-20 17:02:05 -08:00
2011-03-24 10:16:26 -07:00
2011-05-02 19:23:48 +03:00
2011-03-24 10:16:26 -07:00
2011-04-07 11:14:49 -07:00
2011-05-09 18:35:04 -05:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-04-14 16:06:55 -07:00
2011-03-31 11:26:23 -03:00
2011-03-17 11:11:05 +01:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-24 19:01:30 -07:00
2011-03-21 00:16:08 -04:00
2011-04-25 18:14:10 -07:00
2011-03-24 10:16:26 -07:00
2011-03-24 21:16:32 -04:00
2011-02-21 15:07:04 -08:00
2011-03-31 11:26:23 -03:00
2011-03-21 00:16:09 -04:00
2011-03-23 19:47:13 -07:00
2011-04-14 16:06:56 -07:00
2011-03-21 00:16:09 -04:00
2011-03-16 13:26:17 -07:00
2011-04-28 11:28:20 -07:00
2011-04-17 10:42:01 -07:00
2011-03-31 11:26:23 -03:00
2011-03-23 19:47:13 -07:00
2011-04-05 23:51:48 +02:00
2011-03-24 21:17:51 -04:00
2011-03-21 00:16:08 -04:00
2011-03-16 19:01:29 -07:00
2011-03-24 08:20:39 -07:00
2011-03-16 19:01:29 -07:00
2011-03-31 11:26:23 -03:00
2011-03-10 08:52:26 +01:00
2011-04-15 15:28:12 -07:00
2011-04-12 13:35:56 -07:00
2011-03-14 09:15:28 -04:00
2011-03-21 01:10:41 -04:00
2011-01-20 16:21:59 -08:00
2011-01-25 15:24:47 -05:00
2011-03-21 00:16:08 -04:00
2011-03-15 02:21:45 -04:00
2011-03-14 09:15:28 -04:00
2011-03-24 10:16:26 -07:00
2011-03-24 10:16:26 -07:00
2011-03-23 19:47:13 -07:00
2011-04-21 07:34:44 -07:00