mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
xfs: report the health of quota counts
Report the health of quota counts. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
5385f1a60d
commit
3d8f142697
@ -195,6 +195,7 @@ struct xfs_fsop_geom {
|
||||
#define XFS_FSOP_GEOM_SICK_PQUOTA (1 << 3) /* project quota */
|
||||
#define XFS_FSOP_GEOM_SICK_RT_BITMAP (1 << 4) /* realtime bitmap */
|
||||
#define XFS_FSOP_GEOM_SICK_RT_SUMMARY (1 << 5) /* realtime summary */
|
||||
#define XFS_FSOP_GEOM_SICK_QUOTACHECK (1 << 6) /* quota counts */
|
||||
|
||||
/* Output for XFS_FS_COUNTS */
|
||||
typedef struct xfs_fsop_counts {
|
||||
|
@ -41,6 +41,7 @@ struct xfs_fsop_geom;
|
||||
#define XFS_SICK_FS_UQUOTA (1 << 1) /* user quota */
|
||||
#define XFS_SICK_FS_GQUOTA (1 << 2) /* group quota */
|
||||
#define XFS_SICK_FS_PQUOTA (1 << 3) /* project quota */
|
||||
#define XFS_SICK_FS_QUOTACHECK (1 << 4) /* quota counts */
|
||||
|
||||
/* Observable health issues for realtime volume metadata. */
|
||||
#define XFS_SICK_RT_BITMAP (1 << 0) /* realtime bitmap */
|
||||
@ -77,7 +78,8 @@ struct xfs_fsop_geom;
|
||||
#define XFS_SICK_FS_PRIMARY (XFS_SICK_FS_COUNTERS | \
|
||||
XFS_SICK_FS_UQUOTA | \
|
||||
XFS_SICK_FS_GQUOTA | \
|
||||
XFS_SICK_FS_PQUOTA)
|
||||
XFS_SICK_FS_PQUOTA | \
|
||||
XFS_SICK_FS_QUOTACHECK)
|
||||
|
||||
#define XFS_SICK_RT_PRIMARY (XFS_SICK_RT_BITMAP | \
|
||||
XFS_SICK_RT_SUMMARY)
|
||||
|
@ -280,6 +280,7 @@ static const struct ioctl_sick_map fs_map[] = {
|
||||
{ XFS_SICK_FS_UQUOTA, XFS_FSOP_GEOM_SICK_UQUOTA },
|
||||
{ XFS_SICK_FS_GQUOTA, XFS_FSOP_GEOM_SICK_GQUOTA },
|
||||
{ XFS_SICK_FS_PQUOTA, XFS_FSOP_GEOM_SICK_PQUOTA },
|
||||
{ XFS_SICK_FS_QUOTACHECK, XFS_FSOP_GEOM_SICK_QUOTACHECK },
|
||||
{ 0, 0 },
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_ialloc.h"
|
||||
#include "xfs_log_priv.h"
|
||||
#include "xfs_health.h"
|
||||
|
||||
/*
|
||||
* The global quota manager. There is only one of these for the entire
|
||||
@ -1408,8 +1409,12 @@ error_return:
|
||||
xfs_warn(mp,
|
||||
"Quotacheck: Failed to reset quota flags.");
|
||||
}
|
||||
} else
|
||||
xfs_fs_mark_sick(mp, XFS_SICK_FS_QUOTACHECK);
|
||||
} else {
|
||||
xfs_notice(mp, "Quotacheck: Done.");
|
||||
xfs_fs_mark_healthy(mp, XFS_SICK_FS_QUOTACHECK);
|
||||
}
|
||||
|
||||
return error;
|
||||
|
||||
error_purge:
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "xfs_qm.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_error.h"
|
||||
#include "xfs_health.h"
|
||||
|
||||
STATIC void xfs_trans_alloc_dqinfo(xfs_trans_t *);
|
||||
|
||||
@ -706,6 +707,7 @@ error_return:
|
||||
error_corrupt:
|
||||
xfs_dqunlock(dqp);
|
||||
xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE);
|
||||
xfs_fs_mark_sick(mp, XFS_SICK_FS_QUOTACHECK);
|
||||
return -EFSCORRUPTED;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user