Skip to content

Commit

Permalink
xfs: clean up xfs_ail_delete()
Browse files Browse the repository at this point in the history
xfs_ail_delete() has a needlessly complex interface. It returns the log item
that was passed in for deletion (which the callers then assert is identical to
the one passed in), and callers of xfs_ail_delete() still need to invalidate
current traversal cursors.

Make xfs_ail_delete() return void, move the cursor invalidation inside it, and
clean up the callers just to use the log item pointer they passed in.

While cleaning up, remove the messy and unnecessary "/* ARGUSED */" comments
around all these functions.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
  • Loading branch information
Dave Chinner authored and Dave Chinner committed Dec 3, 2010
1 parent b199c8a commit eb3efa1
Showing 1 changed file with 7 additions and 20 deletions.
27 changes: 7 additions & 20 deletions fs/xfs/xfs_trans_ail.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include "xfs_error.h"

STATIC void xfs_ail_insert(struct xfs_ail *, xfs_log_item_t *);
STATIC xfs_log_item_t * xfs_ail_delete(struct xfs_ail *, xfs_log_item_t *);
STATIC void xfs_ail_delete(struct xfs_ail *, xfs_log_item_t *);
STATIC xfs_log_item_t * xfs_ail_min(struct xfs_ail *);
STATIC xfs_log_item_t * xfs_ail_next(struct xfs_ail *, xfs_log_item_t *);

Expand Down Expand Up @@ -468,24 +468,21 @@ xfs_trans_ail_update(
xfs_log_item_t *lip,
xfs_lsn_t lsn) __releases(ailp->xa_lock)
{
xfs_log_item_t *dlip = NULL;
xfs_log_item_t *mlip; /* ptr to minimum lip */
xfs_lsn_t tail_lsn;

mlip = xfs_ail_min(ailp);

if (lip->li_flags & XFS_LI_IN_AIL) {
dlip = xfs_ail_delete(ailp, lip);
ASSERT(dlip == lip);
xfs_trans_ail_cursor_clear(ailp, dlip);
xfs_ail_delete(ailp, lip);
} else {
lip->li_flags |= XFS_LI_IN_AIL;
}

lip->li_lsn = lsn;
xfs_ail_insert(ailp, lip);

if (mlip == dlip) {
if (mlip == lip) {
mlip = xfs_ail_min(ailp);
/*
* It is not safe to access mlip after the AIL lock is
Expand Down Expand Up @@ -524,21 +521,18 @@ xfs_trans_ail_delete(
struct xfs_ail *ailp,
xfs_log_item_t *lip) __releases(ailp->xa_lock)
{
xfs_log_item_t *dlip;
xfs_log_item_t *mlip;
xfs_lsn_t tail_lsn;

if (lip->li_flags & XFS_LI_IN_AIL) {
mlip = xfs_ail_min(ailp);
dlip = xfs_ail_delete(ailp, lip);
ASSERT(dlip == lip);
xfs_trans_ail_cursor_clear(ailp, dlip);
xfs_ail_delete(ailp, lip);


lip->li_flags &= ~XFS_LI_IN_AIL;
lip->li_lsn = 0;

if (mlip == dlip) {
if (mlip == lip) {
mlip = xfs_ail_min(ailp);
/*
* It is not safe to access mlip after the AIL lock
Expand Down Expand Up @@ -632,7 +626,6 @@ STATIC void
xfs_ail_insert(
struct xfs_ail *ailp,
xfs_log_item_t *lip)
/* ARGSUSED */
{
xfs_log_item_t *next_lip;

Expand Down Expand Up @@ -661,18 +654,14 @@ xfs_ail_insert(
/*
* Delete the given item from the AIL. Return a pointer to the item.
*/
/*ARGSUSED*/
STATIC xfs_log_item_t *
STATIC void
xfs_ail_delete(
struct xfs_ail *ailp,
xfs_log_item_t *lip)
/* ARGSUSED */
{
xfs_ail_check(ailp, lip);

list_del(&lip->li_ail);

return lip;
xfs_trans_ail_cursor_clear(ailp, lip);
}

/*
Expand All @@ -682,7 +671,6 @@ xfs_ail_delete(
STATIC xfs_log_item_t *
xfs_ail_min(
struct xfs_ail *ailp)
/* ARGSUSED */
{
if (list_empty(&ailp->xa_ail))
return NULL;
Expand All @@ -699,7 +687,6 @@ STATIC xfs_log_item_t *
xfs_ail_next(
struct xfs_ail *ailp,
xfs_log_item_t *lip)
/* ARGSUSED */
{
if (lip->li_ail.next == &ailp->xa_ail)
return NULL;
Expand Down

0 comments on commit eb3efa1

Please sign in to comment.