aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_bmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_bmap.c')
-rw-r--r--fs/xfs/xfs_bmap.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 8ac170b828f5..34bfb8ad0a25 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -3653,14 +3653,16 @@ xfs_bmap_search_extents(
3653 3653
3654 ep = xfs_bmap_do_search_extents(base, lastx, nextents, bno, eofp, 3654 ep = xfs_bmap_do_search_extents(base, lastx, nextents, bno, eofp,
3655 lastxp, gotp, prevp); 3655 lastxp, gotp, prevp);
3656 rt = ip->i_d.di_flags & XFS_DIFLAG_REALTIME; 3656 rt = (whichfork == XFS_DATA_FORK) && XFS_IS_REALTIME_INODE(ip);
3657 if(!rt && !gotp->br_startblock && (*lastxp != NULLEXTNUM)) { 3657 if (unlikely(!rt && !gotp->br_startblock && (*lastxp != NULLEXTNUM))) {
3658 cmn_err(CE_PANIC,"Access to block zero: fs: <%s> inode: %lld " 3658 cmn_err(CE_PANIC,"Access to block zero: fs: <%s> inode: %lld "
3659 "start_block : %llx start_off : %llx blkcnt : %llx " 3659 "start_block : %llx start_off : %llx blkcnt : %llx "
3660 "extent-state : %x \n", 3660 "extent-state : %x \n",
3661 (ip->i_mount)->m_fsname,(long long)ip->i_ino, 3661 (ip->i_mount)->m_fsname, (long long)ip->i_ino,
3662 gotp->br_startblock, gotp->br_startoff, 3662 (unsigned long long)gotp->br_startblock,
3663 gotp->br_blockcount,gotp->br_state); 3663 (unsigned long long)gotp->br_startoff,
3664 (unsigned long long)gotp->br_blockcount,
3665 gotp->br_state);
3664 } 3666 }
3665 return ep; 3667 return ep;
3666} 3668}
@@ -4883,19 +4885,18 @@ xfs_bmapi(
4883 error = xfs_mod_incore_sb(mp, 4885 error = xfs_mod_incore_sb(mp,
4884 XFS_SBS_FDBLOCKS, 4886 XFS_SBS_FDBLOCKS,
4885 -(indlen), rsvd); 4887 -(indlen), rsvd);
4886 if (error && rt) { 4888 if (error && rt)
4887 xfs_mod_incore_sb(ip->i_mount, 4889 xfs_mod_incore_sb(mp,
4888 XFS_SBS_FREXTENTS, 4890 XFS_SBS_FREXTENTS,
4889 extsz, rsvd); 4891 extsz, rsvd);
4890 } else if (error) { 4892 else if (error)
4891 xfs_mod_incore_sb(ip->i_mount, 4893 xfs_mod_incore_sb(mp,
4892 XFS_SBS_FDBLOCKS, 4894 XFS_SBS_FDBLOCKS,
4893 alen, rsvd); 4895 alen, rsvd);
4894 }
4895 } 4896 }
4896 4897
4897 if (error) { 4898 if (error) {
4898 if (XFS_IS_QUOTA_ON(ip->i_mount)) 4899 if (XFS_IS_QUOTA_ON(mp))
4899 /* unreserve the blocks now */ 4900 /* unreserve the blocks now */
4900 (void) 4901 (void)
4901 XFS_TRANS_UNRESERVE_QUOTA_NBLKS( 4902 XFS_TRANS_UNRESERVE_QUOTA_NBLKS(