Merge branch 'xfs-buf-macro-cleanup-4.6' into for-next
This commit is contained in:
commit
7f0ed5461a
8 changed files with 26 additions and 56 deletions
|
@ -650,7 +650,7 @@ xfs_buf_read_map(
|
|||
if (bp) {
|
||||
trace_xfs_buf_read(bp, flags, _RET_IP_);
|
||||
|
||||
if (!XFS_BUF_ISDONE(bp)) {
|
||||
if (!(bp->b_flags & XBF_DONE)) {
|
||||
XFS_STATS_INC(target->bt_mount, xb_get_read);
|
||||
bp->b_ops = ops;
|
||||
_xfs_buf_read(bp, flags);
|
||||
|
|
|
@ -302,6 +302,7 @@ extern void xfs_buf_iomove(xfs_buf_t *, size_t, size_t, void *,
|
|||
|
||||
/* Buffer Utility Routines */
|
||||
extern void *xfs_buf_offset(struct xfs_buf *, size_t);
|
||||
extern void xfs_buf_stale(struct xfs_buf *bp);
|
||||
|
||||
/* Delayed Write Buffer Routines */
|
||||
extern bool xfs_buf_delwri_queue(struct xfs_buf *, struct list_head *);
|
||||
|
@ -312,31 +313,6 @@ extern int xfs_buf_delwri_submit_nowait(struct list_head *);
|
|||
extern int xfs_buf_init(void);
|
||||
extern void xfs_buf_terminate(void);
|
||||
|
||||
#define XFS_BUF_ZEROFLAGS(bp) \
|
||||
((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC| \
|
||||
XBF_SYNCIO|XBF_FUA|XBF_FLUSH| \
|
||||
XBF_WRITE_FAIL))
|
||||
|
||||
void xfs_buf_stale(struct xfs_buf *bp);
|
||||
#define XFS_BUF_UNSTALE(bp) ((bp)->b_flags &= ~XBF_STALE)
|
||||
#define XFS_BUF_ISSTALE(bp) ((bp)->b_flags & XBF_STALE)
|
||||
|
||||
#define XFS_BUF_DONE(bp) ((bp)->b_flags |= XBF_DONE)
|
||||
#define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE)
|
||||
#define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE)
|
||||
|
||||
#define XFS_BUF_ASYNC(bp) ((bp)->b_flags |= XBF_ASYNC)
|
||||
#define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC)
|
||||
#define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC)
|
||||
|
||||
#define XFS_BUF_READ(bp) ((bp)->b_flags |= XBF_READ)
|
||||
#define XFS_BUF_UNREAD(bp) ((bp)->b_flags &= ~XBF_READ)
|
||||
#define XFS_BUF_ISREAD(bp) ((bp)->b_flags & XBF_READ)
|
||||
|
||||
#define XFS_BUF_WRITE(bp) ((bp)->b_flags |= XBF_WRITE)
|
||||
#define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE)
|
||||
#define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE)
|
||||
|
||||
/*
|
||||
* These macros use the IO block map rather than b_bn. b_bn is now really
|
||||
* just for the buffer cache index for cached buffers. As IO does not use b_bn
|
||||
|
|
|
@ -431,7 +431,7 @@ xfs_buf_item_unpin(
|
|||
if (freed && stale) {
|
||||
ASSERT(bip->bli_flags & XFS_BLI_STALE);
|
||||
ASSERT(xfs_buf_islocked(bp));
|
||||
ASSERT(XFS_BUF_ISSTALE(bp));
|
||||
ASSERT(bp->b_flags & XBF_STALE);
|
||||
ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL);
|
||||
|
||||
trace_xfs_buf_item_unpin_stale(bip);
|
||||
|
@ -493,7 +493,7 @@ xfs_buf_item_unpin(
|
|||
xfs_buf_hold(bp);
|
||||
bp->b_flags |= XBF_ASYNC;
|
||||
xfs_buf_ioerror(bp, -EIO);
|
||||
XFS_BUF_UNDONE(bp);
|
||||
bp->b_flags &= ~XBF_DONE;
|
||||
xfs_buf_stale(bp);
|
||||
xfs_buf_ioend(bp);
|
||||
}
|
||||
|
@ -1067,7 +1067,7 @@ xfs_buf_iodone_callbacks(
|
|||
*/
|
||||
if (XFS_FORCED_SHUTDOWN(mp)) {
|
||||
xfs_buf_stale(bp);
|
||||
XFS_BUF_DONE(bp);
|
||||
bp->b_flags |= XBF_DONE;
|
||||
trace_xfs_buf_item_iodone(bp, _RET_IP_);
|
||||
goto do_callbacks;
|
||||
}
|
||||
|
@ -1090,7 +1090,7 @@ xfs_buf_iodone_callbacks(
|
|||
* errors tend to affect the whole device and a failing log write
|
||||
* will make us give up. But we really ought to do better here.
|
||||
*/
|
||||
if (XFS_BUF_ISASYNC(bp)) {
|
||||
if (bp->b_flags & XBF_ASYNC) {
|
||||
ASSERT(bp->b_iodone != NULL);
|
||||
|
||||
trace_xfs_buf_item_iodone_async(bp, _RET_IP_);
|
||||
|
@ -1113,7 +1113,7 @@ xfs_buf_iodone_callbacks(
|
|||
* sure to return the error to the caller of xfs_bwrite().
|
||||
*/
|
||||
xfs_buf_stale(bp);
|
||||
XFS_BUF_DONE(bp);
|
||||
bp->b_flags |= XBF_DONE;
|
||||
|
||||
trace_xfs_buf_error_relse(bp, _RET_IP_);
|
||||
|
||||
|
|
|
@ -3293,7 +3293,7 @@ xfs_iflush_cluster(
|
|||
* mark it as stale and brelse.
|
||||
*/
|
||||
if (bp->b_iodone) {
|
||||
XFS_BUF_UNDONE(bp);
|
||||
bp->b_flags &= ~XBF_DONE;
|
||||
xfs_buf_stale(bp);
|
||||
xfs_buf_ioerror(bp, -EIO);
|
||||
xfs_buf_ioend(bp);
|
||||
|
|
|
@ -1212,7 +1212,7 @@ xlog_iodone(xfs_buf_t *bp)
|
|||
}
|
||||
|
||||
/* log I/O is always issued ASYNC */
|
||||
ASSERT(XFS_BUF_ISASYNC(bp));
|
||||
ASSERT(bp->b_flags & XBF_ASYNC);
|
||||
xlog_state_done_syncing(iclog, aborted);
|
||||
|
||||
/*
|
||||
|
@ -1864,9 +1864,8 @@ xlog_sync(
|
|||
|
||||
bp->b_io_length = BTOBB(count);
|
||||
bp->b_fspriv = iclog;
|
||||
XFS_BUF_ZEROFLAGS(bp);
|
||||
XFS_BUF_ASYNC(bp);
|
||||
bp->b_flags |= XBF_SYNCIO;
|
||||
bp->b_flags &= ~(XBF_FUA | XBF_FLUSH);
|
||||
bp->b_flags |= (XBF_ASYNC | XBF_SYNCIO | XBF_WRITE);
|
||||
|
||||
if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) {
|
||||
bp->b_flags |= XBF_FUA;
|
||||
|
@ -1893,12 +1892,11 @@ xlog_sync(
|
|||
|
||||
/* account for log which doesn't start at block #0 */
|
||||
XFS_BUF_SET_ADDR(bp, XFS_BUF_ADDR(bp) + log->l_logBBstart);
|
||||
|
||||
/*
|
||||
* Don't call xfs_bwrite here. We do log-syncs even when the filesystem
|
||||
* is shutting down.
|
||||
*/
|
||||
XFS_BUF_WRITE(bp);
|
||||
|
||||
error = xlog_bdstrat(bp);
|
||||
if (error) {
|
||||
xfs_buf_ioerror_alert(bp, "xlog_sync");
|
||||
|
@ -1910,9 +1908,8 @@ xlog_sync(
|
|||
xfs_buf_associate_memory(bp,
|
||||
(char *)&iclog->ic_header + count, split);
|
||||
bp->b_fspriv = iclog;
|
||||
XFS_BUF_ZEROFLAGS(bp);
|
||||
XFS_BUF_ASYNC(bp);
|
||||
bp->b_flags |= XBF_SYNCIO;
|
||||
bp->b_flags &= ~(XBF_FUA | XBF_FLUSH);
|
||||
bp->b_flags |= (XBF_ASYNC | XBF_SYNCIO | XBF_WRITE);
|
||||
if (log->l_mp->m_flags & XFS_MOUNT_BARRIER)
|
||||
bp->b_flags |= XBF_FUA;
|
||||
|
||||
|
@ -1921,7 +1918,6 @@ xlog_sync(
|
|||
|
||||
/* account for internal log which doesn't start at block #0 */
|
||||
XFS_BUF_SET_ADDR(bp, XFS_BUF_ADDR(bp) + log->l_logBBstart);
|
||||
XFS_BUF_WRITE(bp);
|
||||
error = xlog_bdstrat(bp);
|
||||
if (error) {
|
||||
xfs_buf_ioerror_alert(bp, "xlog_sync (split)");
|
||||
|
@ -3979,7 +3975,7 @@ xfs_log_force_umount(
|
|||
log->l_flags & XLOG_ACTIVE_RECOVERY) {
|
||||
mp->m_flags |= XFS_MOUNT_FS_SHUTDOWN;
|
||||
if (mp->m_sb_bp)
|
||||
XFS_BUF_DONE(mp->m_sb_bp);
|
||||
mp->m_sb_bp->b_flags |= XBF_DONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -4009,7 +4005,7 @@ xfs_log_force_umount(
|
|||
spin_lock(&log->l_icloglock);
|
||||
mp->m_flags |= XFS_MOUNT_FS_SHUTDOWN;
|
||||
if (mp->m_sb_bp)
|
||||
XFS_BUF_DONE(mp->m_sb_bp);
|
||||
mp->m_sb_bp->b_flags |= XBF_DONE;
|
||||
|
||||
/*
|
||||
* Mark the log and the iclogs with IO error flags to prevent any
|
||||
|
|
|
@ -190,7 +190,7 @@ xlog_bread_noalign(
|
|||
ASSERT(nbblks <= bp->b_length);
|
||||
|
||||
XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no);
|
||||
XFS_BUF_READ(bp);
|
||||
bp->b_flags |= XBF_READ;
|
||||
bp->b_io_length = nbblks;
|
||||
bp->b_error = 0;
|
||||
|
||||
|
@ -275,7 +275,6 @@ xlog_bwrite(
|
|||
ASSERT(nbblks <= bp->b_length);
|
||||
|
||||
XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no);
|
||||
XFS_BUF_ZEROFLAGS(bp);
|
||||
xfs_buf_hold(bp);
|
||||
xfs_buf_lock(bp);
|
||||
bp->b_io_length = nbblks;
|
||||
|
@ -4998,10 +4997,9 @@ xlog_do_recover(
|
|||
* updates, re-read in the superblock and reverify it.
|
||||
*/
|
||||
bp = xfs_getsb(log->l_mp, 0);
|
||||
XFS_BUF_UNDONE(bp);
|
||||
ASSERT(!(XFS_BUF_ISWRITE(bp)));
|
||||
XFS_BUF_READ(bp);
|
||||
XFS_BUF_UNASYNC(bp);
|
||||
bp->b_flags &= ~(XBF_DONE | XBF_ASYNC);
|
||||
ASSERT(!(bp->b_flags & XBF_WRITE));
|
||||
bp->b_flags |= XBF_READ;
|
||||
bp->b_ops = &xfs_sb_buf_ops;
|
||||
|
||||
error = xfs_buf_submit_wait(bp);
|
||||
|
|
|
@ -1284,7 +1284,7 @@ xfs_getsb(
|
|||
}
|
||||
|
||||
xfs_buf_hold(bp);
|
||||
ASSERT(XFS_BUF_ISDONE(bp));
|
||||
ASSERT(bp->b_flags & XBF_DONE);
|
||||
return bp;
|
||||
}
|
||||
|
||||
|
|
|
@ -155,7 +155,7 @@ xfs_trans_get_buf_map(
|
|||
ASSERT(xfs_buf_islocked(bp));
|
||||
if (XFS_FORCED_SHUTDOWN(tp->t_mountp)) {
|
||||
xfs_buf_stale(bp);
|
||||
XFS_BUF_DONE(bp);
|
||||
bp->b_flags |= XBF_DONE;
|
||||
}
|
||||
|
||||
ASSERT(bp->b_transp == tp);
|
||||
|
@ -518,7 +518,7 @@ xfs_trans_log_buf(xfs_trans_t *tp,
|
|||
* inside the b_bdstrat callback so that this won't get written to
|
||||
* disk.
|
||||
*/
|
||||
XFS_BUF_DONE(bp);
|
||||
bp->b_flags |= XBF_DONE;
|
||||
|
||||
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
||||
bp->b_iodone = xfs_buf_iodone_callbacks;
|
||||
|
@ -534,8 +534,8 @@ xfs_trans_log_buf(xfs_trans_t *tp,
|
|||
*/
|
||||
if (bip->bli_flags & XFS_BLI_STALE) {
|
||||
bip->bli_flags &= ~XFS_BLI_STALE;
|
||||
ASSERT(XFS_BUF_ISSTALE(bp));
|
||||
XFS_BUF_UNSTALE(bp);
|
||||
ASSERT(bp->b_flags & XBF_STALE);
|
||||
bp->b_flags &= ~XBF_STALE;
|
||||
bip->__bli_format.blf_flags &= ~XFS_BLF_CANCEL;
|
||||
}
|
||||
|
||||
|
@ -600,7 +600,7 @@ xfs_trans_binval(
|
|||
* If the buffer is already invalidated, then
|
||||
* just return.
|
||||
*/
|
||||
ASSERT(XFS_BUF_ISSTALE(bp));
|
||||
ASSERT(bp->b_flags & XBF_STALE);
|
||||
ASSERT(!(bip->bli_flags & (XFS_BLI_LOGGED | XFS_BLI_DIRTY)));
|
||||
ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_INODE_BUF));
|
||||
ASSERT(!(bip->__bli_format.blf_flags & XFS_BLFT_MASK));
|
||||
|
|
Loading…
Reference in a new issue