xfs: return the buffer locked from xfs_buf_get_uncached
All other xfs_buf_get/read-like helpers return the buffer locked, make sure xfs_buf_get_uncached isn't different for no reason. Half of the callers already lock it directly after, and the others probably should also keep it locked if only for consistency and beeing able to use xfs_buf_rele, but I'll leave that for later. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com> Reviewed-by: Dave Chinner <dchinner@redhat.com>
This commit is contained in:
Родитель
0c842ad46a
Коммит
c8da0faf6b
|
@ -679,7 +679,6 @@ xfs_buf_read_uncached(
|
|||
return NULL;
|
||||
|
||||
/* set up the buffer for a read IO */
|
||||
xfs_buf_lock(bp);
|
||||
XFS_BUF_SET_ADDR(bp, daddr);
|
||||
XFS_BUF_READ(bp);
|
||||
XFS_BUF_BUSY(bp);
|
||||
|
@ -814,8 +813,6 @@ xfs_buf_get_uncached(
|
|||
goto fail_free_mem;
|
||||
}
|
||||
|
||||
xfs_buf_unlock(bp);
|
||||
|
||||
trace_xfs_buf_get_uncached(bp, _RET_IP_);
|
||||
return bp;
|
||||
|
||||
|
|
|
@ -1090,8 +1090,7 @@ xlog_alloc_log(xfs_mount_t *mp,
|
|||
log->l_iclog_size, 0);
|
||||
if (!bp)
|
||||
goto out_free_iclog;
|
||||
if (!xfs_buf_trylock(bp))
|
||||
ASSERT(0);
|
||||
|
||||
XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone);
|
||||
XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1);
|
||||
iclog->ic_bp = bp;
|
||||
|
|
|
@ -91,6 +91,8 @@ xlog_get_bp(
|
|||
xlog_t *log,
|
||||
int nbblks)
|
||||
{
|
||||
struct xfs_buf *bp;
|
||||
|
||||
if (!xlog_buf_bbcount_valid(log, nbblks)) {
|
||||
xfs_warn(log->l_mp, "Invalid block length (0x%x) for buffer",
|
||||
nbblks);
|
||||
|
@ -118,8 +120,10 @@ xlog_get_bp(
|
|||
nbblks += log->l_sectBBsize;
|
||||
nbblks = round_up(nbblks, log->l_sectBBsize);
|
||||
|
||||
return xfs_buf_get_uncached(log->l_mp->m_logdev_targp,
|
||||
BBTOB(nbblks), 0);
|
||||
bp = xfs_buf_get_uncached(log->l_mp->m_logdev_targp, BBTOB(nbblks), 0);
|
||||
if (bp)
|
||||
xfs_buf_unlock(bp);
|
||||
return bp;
|
||||
}
|
||||
|
||||
STATIC void
|
||||
|
|
|
@ -1969,6 +1969,8 @@ xfs_zero_remaining_bytes(
|
|||
if (!bp)
|
||||
return XFS_ERROR(ENOMEM);
|
||||
|
||||
xfs_buf_unlock(bp);
|
||||
|
||||
for (offset = startoff; offset <= endoff; offset = lastoffset + 1) {
|
||||
offset_fsb = XFS_B_TO_FSBT(mp, offset);
|
||||
nimap = 1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче