mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 04:42:12 +00:00
[XFS] Always use di_forkoff when checking for attr space.
In the case where we mount a filesystem which was previously using the attr2 format as attr1, returning the default mp->m_attroffset instead of the per-inode di_forkoff for inline attribute fit calculations, may result in corruption, if for example, the data fork is already taking more space than the default fork offset and we try to add an extended attribute. Fix tested by xfstests/186. SGI-PV: 979606 SGI-Modid: xfs-linux-melb:xfs-kern:30861a Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Signed-off-by: Tim Shimmin <tes@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:
parent
f6485057c5
commit
cb49dbb130
@ -166,7 +166,7 @@ xfs_attr_shortform_bytesfit(xfs_inode_t *dp, int bytes)
|
||||
|
||||
if (!(mp->m_flags & XFS_MOUNT_ATTR2)) {
|
||||
if (bytes <= XFS_IFORK_ASIZE(dp))
|
||||
return mp->m_attroffset >> 3;
|
||||
return dp->i_d.di_forkoff;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user