]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: don't recreate /quota metadir if there are no quota inodes
authorDarrick J. Wong <djwong@kernel.org>
Fri, 21 Mar 2025 16:31:31 +0000 (09:31 -0700)
committerAndrey Albershteyn <aalbersh@kernel.org>
Mon, 31 Mar 2025 09:45:45 +0000 (11:45 +0200)
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>
repair/phase6.c

index 4064a84b24509f4899f2174c19e95dddf09e09bf..2d526dda484293db6753c359d157db6e86b9506e 100644 (file)
@@ -3538,6 +3538,11 @@ reset_quota_metadir_inodes(
        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"),