|
@@ -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
|