Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8acad70 authored by Dave Chinner's avatar Dave Chinner Committed by Ben Myers
Browse files

xfs: kill XBF_LOCK



Buffers are always returned locked from the lookup routines. Hence
we don't need to tell the lookup routines to return locked buffers,
on to try and lock them. Remove XBF_LOCK from all the callers and
from internal buffer cache usage.

Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
Signed-off-by: default avatarBen Myers <bpm@sgi.com>
parent 795cac72
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1988,8 +1988,7 @@ xfs_attr_rmtval_get(xfs_da_args_t *args)
			dblkno = XFS_FSB_TO_DADDR(mp, map[i].br_startblock);
			blkcnt = XFS_FSB_TO_BB(mp, map[i].br_blockcount);
			error = xfs_read_buf(mp, mp->m_ddev_targp, dblkno,
					     blkcnt, XBF_LOCK | XBF_DONT_BLOCK,
					     &bp);
					     blkcnt, XBF_DONT_BLOCK, &bp);
			if (error)
				return(error);

@@ -2116,7 +2115,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args)
		blkcnt = XFS_FSB_TO_BB(mp, map.br_blockcount);

		bp = xfs_buf_get(mp->m_ddev_targp, dblkno, blkcnt,
				 XBF_LOCK | XBF_DONT_BLOCK);
				 XBF_DONT_BLOCK);
		if (!bp)
			return ENOMEM;

+1 −1
Original line number Diff line number Diff line
@@ -2983,7 +2983,7 @@ xfs_attr_leaf_freextent(xfs_trans_t **trans, xfs_inode_t *dp,
						map.br_blockcount);
			bp = xfs_trans_get_buf(*trans,
					dp->i_mount->m_ddev_targp,
					dblkno, dblkcnt, XBF_LOCK);
					dblkno, dblkcnt, 0);
			if (!bp)
				return ENOMEM;
			xfs_trans_binval(*trans, bp);
+5 −15
Original line number Diff line number Diff line
@@ -185,7 +185,7 @@ xfs_buf_alloc(
	/*
	 * We don't want certain flags to appear in b_flags.
	 */
	flags &= ~(XBF_LOCK|XBF_MAPPED|XBF_DONT_BLOCK|XBF_READ_AHEAD);
	flags &= ~(XBF_MAPPED|XBF_DONT_BLOCK|XBF_READ_AHEAD);

	atomic_set(&bp->b_hold, 1);
	atomic_set(&bp->b_lru_ref, 1);
@@ -584,19 +584,14 @@ xfs_buf_get(
		if (unlikely(error)) {
			xfs_warn(target->bt_mount,
				"%s: failed to map pages\n", __func__);
			goto no_buffer;
			xfs_buf_relse(bp);
			return NULL;
		}
	}

	XFS_STATS_INC(xb_get);
	trace_xfs_buf_get(bp, flags, _RET_IP_);
	return bp;

no_buffer:
	if (flags & (XBF_LOCK | XBF_TRYLOCK))
		xfs_buf_unlock(bp);
	xfs_buf_rele(bp);
	return NULL;
}

STATIC int
@@ -639,7 +634,8 @@ xfs_buf_read(
			 * Read ahead call which is already satisfied,
			 * drop the buffer
			 */
			goto no_buffer;
			xfs_buf_relse(bp);
			return NULL;
		} else {
			/* We do not want read in the flags */
			bp->b_flags &= ~XBF_READ;
@@ -647,12 +643,6 @@ xfs_buf_read(
	}

	return bp;

 no_buffer:
	if (flags & (XBF_LOCK | XBF_TRYLOCK))
		xfs_buf_unlock(bp);
	xfs_buf_rele(bp);
	return NULL;
}

/*
+1 −3
Original line number Diff line number Diff line
@@ -52,7 +52,6 @@ typedef enum {
#define XBF_FLUSH	(1 << 12)/* flush the disk cache before a write */

/* flags used only as arguments to access routines */
#define XBF_LOCK	(1 << 15)/* lock requested */
#define XBF_TRYLOCK	(1 << 16)/* lock requested, but do not wait */
#define XBF_DONT_BLOCK	(1 << 17)/* do not block in current thread */

@@ -74,8 +73,7 @@ typedef unsigned int xfs_buf_flags_t;
	{ XBF_SYNCIO,		"SYNCIO" }, \
	{ XBF_FUA,		"FUA" }, \
	{ XBF_FLUSH,		"FLUSH" }, \
	{ XBF_LOCK,		"LOCK" },  	/* should never be set */\
	{ XBF_TRYLOCK,		"TRYLOCK" }, 	/* ditto */\
	{ XBF_TRYLOCK,		"TRYLOCK" }, 	/* should never be set */\
	{ XBF_DONT_BLOCK,	"DONT_BLOCK" },	/* ditto */\
	{ _XBF_PAGES,		"PAGES" }, \
	{ _XBF_KMEM,		"KMEM" }, \
+5 −8
Original line number Diff line number Diff line
@@ -193,7 +193,7 @@ xfs_growfs_data_private(
		 */
		bp = xfs_buf_get(mp->m_ddev_targp,
				 XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)),
				 XFS_FSS_TO_BB(mp, 1), XBF_LOCK | XBF_MAPPED);
				 XFS_FSS_TO_BB(mp, 1), XBF_MAPPED);
		if (!bp) {
			error = ENOMEM;
			goto error0;
@@ -230,7 +230,7 @@ xfs_growfs_data_private(
		 */
		bp = xfs_buf_get(mp->m_ddev_targp,
				 XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)),
				 XFS_FSS_TO_BB(mp, 1), XBF_LOCK | XBF_MAPPED);
				 XFS_FSS_TO_BB(mp, 1), XBF_MAPPED);
		if (!bp) {
			error = ENOMEM;
			goto error0;
@@ -259,8 +259,7 @@ xfs_growfs_data_private(
		 */
		bp = xfs_buf_get(mp->m_ddev_targp,
				 XFS_AGB_TO_DADDR(mp, agno, XFS_BNO_BLOCK(mp)),
				 BTOBB(mp->m_sb.sb_blocksize),
				 XBF_LOCK | XBF_MAPPED);
				 BTOBB(mp->m_sb.sb_blocksize), XBF_MAPPED);
		if (!bp) {
			error = ENOMEM;
			goto error0;
@@ -286,8 +285,7 @@ xfs_growfs_data_private(
		 */
		bp = xfs_buf_get(mp->m_ddev_targp,
				 XFS_AGB_TO_DADDR(mp, agno, XFS_CNT_BLOCK(mp)),
				 BTOBB(mp->m_sb.sb_blocksize),
				 XBF_LOCK | XBF_MAPPED);
				 BTOBB(mp->m_sb.sb_blocksize), XBF_MAPPED);
		if (!bp) {
			error = ENOMEM;
			goto error0;
@@ -314,8 +312,7 @@ xfs_growfs_data_private(
		 */
		bp = xfs_buf_get(mp->m_ddev_targp,
				 XFS_AGB_TO_DADDR(mp, agno, XFS_IBT_BLOCK(mp)),
				 BTOBB(mp->m_sb.sb_blocksize),
				 XBF_LOCK | XBF_MAPPED);
				 BTOBB(mp->m_sb.sb_blocksize), XBF_MAPPED);
		if (!bp) {
			error = ENOMEM;
			goto error0;
Loading