diff options
Diffstat (limited to 'fs/xfs/xfs_bmap.c')
-rw-r--r-- | fs/xfs/xfs_bmap.c | 23 |
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( |