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);
 
                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;
 
 
                                                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);
 
        /*
         * 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);
                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
                         * 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;
        }
 
        return bp;
-
- no_buffer:
-       if (flags & (XBF_LOCK | XBF_TRYLOCK))
-               xfs_buf_unlock(bp);
-       xfs_buf_rele(bp);
-       return NULL;
 }
 
 /*
 
 #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 */
 
        { 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" }, \
 
                 */
                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;
                 */
                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;
                 */
                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;
                 */
                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;
                 */
                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;
 
                 */
                d = XFS_AGB_TO_DADDR(mp, agno, agbno + (j * blks_per_cluster));
                fbuf = xfs_trans_get_buf(tp, mp->m_ddev_targp, d,
-                                        mp->m_bsize * blks_per_cluster,
-                                        XBF_LOCK);
+                                        mp->m_bsize * blks_per_cluster, 0);
                if (!fbuf)
                        return ENOMEM;
                /*
 
        if (error)
                return error;
 
-       error = xfs_imap_to_bp(mp, tp, &imap, &bp, XBF_LOCK, imap_flags);
+       error = xfs_imap_to_bp(mp, tp, &imap, &bp, 0, imap_flags);
        if (error)
                return error;
 
        /*
         * Get pointers to the on-disk inode and the buffer containing it.
         */
-       error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp,
-                              XBF_LOCK, iget_flags);
+       error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, 0, iget_flags);
        if (error)
                return error;
        dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset);
                 * Here we put the head pointer into our next pointer,
                 * and then we fall through to point the head at us.
                 */
-               error = xfs_itobp(mp, tp, ip, &dip, &ibp, XBF_LOCK);
+               error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0);
                if (error)
                        return error;
 
                 * of dealing with the buffer when there is no need to
                 * change it.
                 */
-               error = xfs_itobp(mp, tp, ip, &dip, &ibp, XBF_LOCK);
+               error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0);
                if (error) {
                        xfs_warn(mp, "%s: xfs_itobp() returned error %d.",
                                __func__, error);
                 * Now last_ibp points to the buffer previous to us on
                 * the unlinked list.  Pull us from the list.
                 */
-               error = xfs_itobp(mp, tp, ip, &dip, &ibp, XBF_LOCK);
+               error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0);
                if (error) {
                        xfs_warn(mp, "%s: xfs_itobp(2) returned error %d.",
                                __func__, error);
                 * to mark all the active inodes on the buffer stale.
                 */
                bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, blkno,
-                                       mp->m_bsize * blks_per_cluster,
-                                       XBF_LOCK);
+                                       mp->m_bsize * blks_per_cluster, 0);
 
                if (!bp)
                        return ENOMEM;
 
        xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
 
-       error = xfs_itobp(ip->i_mount, tp, ip, &dip, &ibp, XBF_LOCK);
+       error = xfs_itobp(ip->i_mount, tp, ip, &dip, &ibp, 0);
        if (error)
                return error;
 
 
 
        trace_xfs_log_recover_buf_recover(log, buf_f);
 
-       buf_flags = XBF_LOCK;
+       buf_flags = 0;
        if (!(buf_f->blf_flags & XFS_BLF_INODE_BUF))
                buf_flags |= XBF_MAPPED;
 
        }
        trace_xfs_log_recover_inode_recover(log, in_f);
 
-       bp = xfs_buf_read(mp->m_ddev_targp, in_f->ilf_blkno, in_f->ilf_len,
-                         XBF_LOCK);
+       bp = xfs_buf_read(mp->m_ddev_targp, in_f->ilf_blkno, in_f->ilf_len, 0);
        if (!bp) {
                error = ENOMEM;
                goto error;
        /*
         * Get the on disk inode to find the next inode in the bucket.
         */
-       error = xfs_itobp(mp, NULL, ip, &dip, &ibp, XBF_LOCK);
+       error = xfs_itobp(mp, NULL, ip, &dip, &ibp, 0);
        if (error)
                goto fail_iput;
 
 
        int              error;
 
        if (!flags)
-               flags = XBF_LOCK | XBF_MAPPED;
+               flags = XBF_MAPPED;
 
        bp = xfs_buf_read(target, blkno, len, flags);
        if (!bp)
 
        xfs_buf_log_item_t      *bip;
 
        if (flags == 0)
-               flags = XBF_LOCK | XBF_MAPPED;
+               flags = XBF_MAPPED;
 
        /*
         * Default to a normal get_buf() call if the tp is NULL.
        int                     error;
 
        if (flags == 0)
-               flags = XBF_LOCK | XBF_MAPPED;
+               flags = XBF_MAPPED;
 
        /*
         * Default to a normal get_buf() call if the tp is NULL.
 
                byte_cnt = XFS_FSB_TO_B(mp, mval[n].br_blockcount);
 
                bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt),
-                                 XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK);
+                                 XBF_MAPPED | XBF_DONT_BLOCK);
                if (!bp)
                        return XFS_ERROR(ENOMEM);
                error = bp->b_error;