diff options
Diffstat (limited to 'fs/xfs/xfs_trans_priv.h')
| -rw-r--r-- | fs/xfs/xfs_trans_priv.h | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 1b736294558a..49931b72da8a 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -119,6 +119,21 @@ xfs_trans_ail_delete(  	xfs_trans_ail_delete_bulk(ailp, &lip, 1, shutdown_type);  } +static inline void +xfs_trans_ail_remove( +	struct xfs_log_item	*lip, +	int			shutdown_type) +{ +	struct xfs_ail		*ailp = lip->li_ailp; + +	spin_lock(&ailp->xa_lock); +	/* xfs_trans_ail_delete() drops the AIL lock */ +	if (lip->li_flags & XFS_LI_IN_AIL) +		xfs_trans_ail_delete(ailp, lip, shutdown_type); +	else +		spin_unlock(&ailp->xa_lock); +} +  void			xfs_ail_push(struct xfs_ail *, xfs_lsn_t);  void			xfs_ail_push_all(struct xfs_ail *);  void			xfs_ail_push_all_sync(struct xfs_ail *);  |