mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
xfs: adjust xfs_bmap_add_attrfork for metadir
Online repair might use the xfs_bmap_add_attrfork to repair a file in the metadata directory tree if (say) the metadata file lacks the correct parent pointers. In that case, it is not correct to check that the file is dqattached -- metadata files must be not have /any/ dquot attached at all. Adjust the assertions appropriately. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
cc0cf84aa7
commit
61b6bdb30a
@ -1004,7 +1004,10 @@ xfs_attr_add_fork(
|
||||
unsigned int blks; /* space reservation */
|
||||
int error; /* error return value */
|
||||
|
||||
ASSERT(!XFS_NOT_DQATTACHED(mp, ip));
|
||||
if (xfs_is_metadir_inode(ip))
|
||||
ASSERT(XFS_IS_DQDETACHED(ip));
|
||||
else
|
||||
ASSERT(!XFS_NOT_DQATTACHED(mp, ip));
|
||||
|
||||
blks = XFS_ADDAFORK_SPACE_RES(mp);
|
||||
|
||||
|
@ -1042,7 +1042,10 @@ xfs_bmap_add_attrfork(
|
||||
int error; /* error return value */
|
||||
|
||||
xfs_assert_ilocked(ip, XFS_ILOCK_EXCL);
|
||||
ASSERT(!XFS_NOT_DQATTACHED(mp, ip));
|
||||
if (xfs_is_metadir_inode(ip))
|
||||
ASSERT(XFS_IS_DQDETACHED(ip));
|
||||
else
|
||||
ASSERT(!XFS_NOT_DQATTACHED(mp, ip));
|
||||
ASSERT(!xfs_inode_has_attr_fork(ip));
|
||||
|
||||
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
|
||||
|
Loading…
Reference in New Issue
Block a user