Merge branch 'xfs-4.10-misc-fixes-3' into for-next
This commit is contained in:
@@ -518,7 +518,7 @@ void
|
||||
xfs_bmap_trace_exlist(
|
||||
xfs_inode_t *ip, /* incore inode pointer */
|
||||
xfs_extnum_t cnt, /* count of entries in the list */
|
||||
int whichfork, /* data or attr fork */
|
||||
int whichfork, /* data or attr or cow fork */
|
||||
unsigned long caller_ip)
|
||||
{
|
||||
xfs_extnum_t idx; /* extent record index */
|
||||
@@ -527,11 +527,13 @@ xfs_bmap_trace_exlist(
|
||||
|
||||
if (whichfork == XFS_ATTR_FORK)
|
||||
state |= BMAP_ATTRFORK;
|
||||
else if (whichfork == XFS_COW_FORK)
|
||||
state |= BMAP_COWFORK;
|
||||
|
||||
ifp = XFS_IFORK_PTR(ip, whichfork);
|
||||
ASSERT(cnt == xfs_iext_count(ifp));
|
||||
for (idx = 0; idx < cnt; idx++)
|
||||
trace_xfs_extlist(ip, idx, whichfork, caller_ip);
|
||||
trace_xfs_extlist(ip, idx, state, caller_ip);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1151,6 +1153,10 @@ xfs_bmap_add_attrfork(
|
||||
goto trans_cancel;
|
||||
if (XFS_IFORK_Q(ip))
|
||||
goto trans_cancel;
|
||||
if (ip->i_d.di_anextents != 0) {
|
||||
error = -EFSCORRUPTED;
|
||||
goto trans_cancel;
|
||||
}
|
||||
if (ip->i_d.di_aformat != XFS_DINODE_FMT_EXTENTS) {
|
||||
/*
|
||||
* For inodes coming from pre-6.2 filesystems.
|
||||
@@ -1158,7 +1164,6 @@ xfs_bmap_add_attrfork(
|
||||
ASSERT(ip->i_d.di_aformat == 0);
|
||||
ip->i_d.di_aformat = XFS_DINODE_FMT_EXTENTS;
|
||||
}
|
||||
ASSERT(ip->i_d.di_anextents == 0);
|
||||
|
||||
xfs_trans_ijoin(tp, ip, 0);
|
||||
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
|
||||
@@ -1375,8 +1380,9 @@ xfs_bmap_read_extents(
|
||||
return error;
|
||||
block = XFS_BUF_TO_BLOCK(bp);
|
||||
}
|
||||
if (i != XFS_IFORK_NEXTENTS(ip, whichfork))
|
||||
return -EFSCORRUPTED;
|
||||
ASSERT(i == xfs_iext_count(ifp));
|
||||
ASSERT(i == XFS_IFORK_NEXTENTS(ip, whichfork));
|
||||
XFS_BMAP_TRACE_EXLIST(ip, i, whichfork);
|
||||
return 0;
|
||||
error0:
|
||||
|
||||
Reference in New Issue
Block a user