diff options
author | David Chinner <david@fromorbit.com> | 2008-10-30 02:39:46 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@sgi.com> | 2008-10-30 02:39:46 -0400 |
commit | fc1829f34d30899701dfd5890030d39e13e1f47d (patch) | |
tree | c2532c6a1070396e39000f36a5728f0f0940b24d /fs/xfs/xfs_trans.c | |
parent | a9c21c1b9deaced836034e77fe25fe0b55c21f02 (diff) |
[XFS] Add ail pointer into log items
Add an xfs_ail pointer to log items so that the log items can reference
the AIL directly during callbacks without needed a struct xfs_mount.
SGI-PV: 988143
SGI-Modid: xfs-linux-melb:xfs-kern:32352a
Signed-off-by: David Chinner <david@fromorbit.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Diffstat (limited to 'fs/xfs/xfs_trans.c')
-rw-r--r-- | fs/xfs/xfs_trans.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 99ba0e2658b7..5163e1216c8e 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c | |||
@@ -1383,11 +1383,13 @@ xfs_trans_chunk_committed( | |||
1383 | xfs_log_item_desc_t *lidp; | 1383 | xfs_log_item_desc_t *lidp; |
1384 | xfs_log_item_t *lip; | 1384 | xfs_log_item_t *lip; |
1385 | xfs_lsn_t item_lsn; | 1385 | xfs_lsn_t item_lsn; |
1386 | struct xfs_mount *mp; | ||
1387 | int i; | 1386 | int i; |
1388 | 1387 | ||
1389 | lidp = licp->lic_descs; | 1388 | lidp = licp->lic_descs; |
1390 | for (i = 0; i < licp->lic_unused; i++, lidp++) { | 1389 | for (i = 0; i < licp->lic_unused; i++, lidp++) { |
1390 | struct xfs_mount *mp; | ||
1391 | struct xfs_ail *ailp; | ||
1392 | |||
1391 | if (xfs_lic_isfree(licp, i)) { | 1393 | if (xfs_lic_isfree(licp, i)) { |
1392 | continue; | 1394 | continue; |
1393 | } | 1395 | } |
@@ -1425,7 +1427,8 @@ xfs_trans_chunk_committed( | |||
1425 | * the test below. | 1427 | * the test below. |
1426 | */ | 1428 | */ |
1427 | mp = lip->li_mountp; | 1429 | mp = lip->li_mountp; |
1428 | spin_lock(&mp->m_ail->xa_lock); | 1430 | ailp = lip->li_ailp; |
1431 | spin_lock(&ailp->xa_lock); | ||
1429 | if (XFS_LSN_CMP(item_lsn, lip->li_lsn) > 0) { | 1432 | if (XFS_LSN_CMP(item_lsn, lip->li_lsn) > 0) { |
1430 | /* | 1433 | /* |
1431 | * This will set the item's lsn to item_lsn | 1434 | * This will set the item's lsn to item_lsn |
@@ -1436,7 +1439,7 @@ xfs_trans_chunk_committed( | |||
1436 | */ | 1439 | */ |
1437 | xfs_trans_update_ail(mp, lip, item_lsn); | 1440 | xfs_trans_update_ail(mp, lip, item_lsn); |
1438 | } else { | 1441 | } else { |
1439 | spin_unlock(&mp->m_ail->xa_lock); | 1442 | spin_unlock(&ailp->xa_lock); |
1440 | } | 1443 | } |
1441 | 1444 | ||
1442 | /* | 1445 | /* |