mirror of
https://github.com/torvalds/linux.git
synced 2024-12-18 00:53:40 +00:00
xfs: don't crash on corrupt /quotas dirent
If the /quotas dirent points to an inode but the inode isn't loadable
(and hence mkdir returns -EEXIST), don't crash, just bail out.
Cc: <stable@vger.kernel.org> # v6.13-rc1
Fixes: e80fbe1ad8
("xfs: use metadir for quota inodes")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
3853b5e1d7
commit
e57e083be9
@ -731,6 +731,13 @@ xfs_qm_create_metadir_qinos(
|
||||
error = xfs_dqinode_mkdir_parent(mp, &qi->qi_dirip);
|
||||
if (error && error != -EEXIST)
|
||||
return error;
|
||||
/*
|
||||
* If the /quotas dirent points to an inode that isn't
|
||||
* loadable, qi_dirip will be NULL but mkdir_parent will return
|
||||
* -EEXIST. In this case the metadir is corrupt, so bail out.
|
||||
*/
|
||||
if (XFS_IS_CORRUPT(mp, qi->qi_dirip == NULL))
|
||||
return -EFSCORRUPTED;
|
||||
}
|
||||
|
||||
if (XFS_IS_UQUOTA_ON(mp) && !qi->qi_uquotaip) {
|
||||
|
Loading…
Reference in New Issue
Block a user