If repair does not discover even a single quota file, then don't have it
try to create a /quota metadir to hold them. This avoids pointless
repair failures on quota-less filesystems that are nearly full.
Found via generic/558 on a zoned=1 filesystem.
Cc: linux-xfs@vger.kernel.org # v6.13.0
Fixes: b790ab2a303d58 ("xfs_repair: support quota inodes in the metadata directory")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Andrey Albershteyn <aalbersh@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
struct xfs_inode *dp = NULL;
int error;
+ if (!has_quota_inode(XFS_DQTYPE_USER) &&
+ !has_quota_inode(XFS_DQTYPE_GROUP) &&
+ !has_quota_inode(XFS_DQTYPE_PROJ))
+ return;
+
error = -libxfs_dqinode_mkdir_parent(mp, &dp);
if (error)
do_error(_("failed to create quota metadir (%d)\n"),