]> git.apps.os.sepia.ceph.com Git - xfsprogs-dev.git/commitdiff
xfs_scrub_all: trigger automatic media scans once per month
authorDarrick J. Wong <djwong@kernel.org>
Mon, 29 Jul 2024 23:23:16 +0000 (16:23 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 30 Jul 2024 00:01:10 +0000 (17:01 -0700)
Teach the xfs_scrub_all background service to trigger an automatic scan
of all file data once per month.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
scrub/Makefile
scrub/xfs_scrub_all.cron.in
scrub/xfs_scrub_all.service.in

index 091a5c94baa160f4a7259a0bb8bcc096b63698cd..0e09ed127b823423371c2dbedec1bcbf6063e789 100644 (file)
@@ -108,6 +108,9 @@ CFILES += unicrash.c
 LCFLAGS += -DHAVE_LIBICU $(LIBICU_CFLAGS)
 endif
 
+# Automatically trigger a media scan once per month
+XFS_SCRUB_ALL_AUTO_MEDIA_SCAN_INTERVAL=1mo
+
 LDIRT = $(XFS_SCRUB_ALL_PROG) $(XFS_SCRUB_FAIL_PROG) *.service *.cron
 
 default: depend $(LTCOMMAND) $(XFS_SCRUB_ALL_PROG) $(XFS_SCRUB_FAIL_PROG) $(OPTIONAL_TARGETS)
@@ -143,11 +146,14 @@ install: $(INSTALL_SCRUB)
                   -e "s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" \
                   -e "s|@pkg_libexec_dir@|$(PKG_LIBEXEC_DIR)|g" \
                   -e "s|@pkg_state_dir@|$(PKG_STATE_DIR)|g" \
+                  -e "s|@media_scan_interval@|$(XFS_SCRUB_ALL_AUTO_MEDIA_SCAN_INTERVAL)|g" \
                   < $< > $@
 
 %.cron: %.cron.in $(builddefs)
        @echo "    [SED]    $@"
-       $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" < $< > $@
+       $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" \
+                  -e "s|@media_scan_interval@|$(XFS_SCRUB_ALL_AUTO_MEDIA_SCAN_INTERVAL)|g" \
+                  < $< > $@
 
 install-systemd: default $(SYSTEMD_SERVICES)
        $(INSTALL) -m 755 -d $(SYSTEMD_SYSTEM_UNIT_DIR)
index e08a9daf9259e0b2a5ca45cb2778cec47c32392e..e6633e091c42b0e1b58f8cfcf12fd7fe110bbd96 100644 (file)
@@ -3,4 +3,4 @@
 # Copyright (C) 2018-2024 Oracle.  All Rights Reserved.
 # Author: Darrick J. Wong <djwong@kernel.org>
 #
-10 3 * * 0 root test -e /run/systemd/system || @sbindir@/xfs_scrub_all
+10 3 * * 0 root test -e /run/systemd/system || @sbindir@/xfs_scrub_all --auto-media-scan-interval @media_scan_interval@
index 9ecc3af0c1f6511a404c70d9fbe512dcda58888c..8ed6829890480e7d0f6ce5b85ca7ef793bf50afc 100644 (file)
@@ -12,7 +12,7 @@ After=paths.target multi-user.target network.target network-online.target system
 [Service]
 Type=oneshot
 Environment=SERVICE_MODE=1
-ExecStart=@sbindir@/xfs_scrub_all
+ExecStart=@sbindir@/xfs_scrub_all --auto-media-scan-interval @media_scan_interval@
 SyslogIdentifier=xfs_scrub_all
 
 # Create the service underneath the scrub background service slice so that we