[PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS
Christoph Hellwig
hch at infradead.org
Fri Jul 15 20:59:01 CDT 2011
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -1367,7 +1367,7 @@ xlog_sync(xlog_t *log,
> }
> XFS_BUF_SET_COUNT(bp, count);
> XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */
> - XFS_BUF_ZEROFLAGS(bp);
> + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED);
> XFS_BUF_BUSY(bp);
> XFS_BUF_ASYNC(bp);
> bp->b_flags |= XBF_LOG_BUFFER;
Note that XBF_ORDERED is gone in the current tree, you need to rebase
your patches to pick up the buffer changes I recently sent out.
I don't link this blind expansion. For one all that flag setting is
duplicated in two places in xlog_sync, please send a patch to
consolidate it in xlog_bdstrat. Second XBF_READ and XBF_DELWRI
won't ever be set here, so no need to clear them. And XBF_WRITE
and XBF_ASYNC will get re-set a few lines down the code, so no need
to clear them either. The XBF_FLUSH and XBF_FUA flag also get set
conditionally a little below, so I'd just clear them in an else
clause for the if condition checking if they should be set.
> diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
> index 04142ca..75ba081 100644
> --- a/fs/xfs/xfs_log_recover.c
> +++ b/fs/xfs/xfs_log_recover.c
> @@ -261,7 +261,7 @@ xlog_bwrite(
> ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp));
>
> XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no);
> - XFS_BUF_ZEROFLAGS(bp);
> + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED);
> XFS_BUF_BUSY(bp);
> XFS_BUF_HOLD(bp);
> XFS_BUF_PSEMA(bp, PRIBIO);
XBF_READ, XBF_WRITE, XBF_ASYNC and XBF_DELWRI already get dealt with
in xfs_bwrite a few lines down, and XBF_ORDERED can't be set here. IOW
this line can simply be removed.
More information about the xfs
mailing list