blob: cfa7af794dfc63443fe7d59d9dc96a18ae9e5975 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
PR: 215828
--- periodic-snapshot.2016122900 2016-12-29 10:31:43.423980000 -0500
+++ periodic-snapshot 2017-01-05 11:21:16.767572000 -0500
@@ -47,6 +47,22 @@
* ) exit 0 ;;
esac
+# explicitly check whether we should take care of ZFS to
+# prevent us from _implicitly_ loading "zfs.ko" without reason
+zfs_enabled=`( \
+ if [ -r /etc/defaults/rc.conf ]; then \
+ . /etc/defaults/rc.conf; \
+ source_rc_confs; \
+ fi; \
+ . /etc/rc.subr; \
+ load_rc_config zfs; \
+ if checkyesno zfs_enable; then \
+ echo 'yes'; \
+ else \
+ echo 'no'; \
+ fi
+) 2>/dev/null || true`
+
# determine run-time tag and current hour
time_tag="$1"
time_hour=$((0 + `date '+%k'`))
@@ -87,10 +103,14 @@
OIFS="$IFS"; IFS="$IFS,"
for fs in $fs_list; do
IFS="$OIFS"
- # sanity check filesystem snapshot schedule
- if [ $((0 + $when_weekly + $when_daily + $when_hourly)) -gt 20 ]; then
- logger -p daemon.warning \
- "snapshot: schedule $schedule on filesystem $fs would require more than maximum number of 20 possible snapshots"
+ if [ ".$zfs_enabled" = .yes ] && (zfs list $fs) >/dev/null 2>&1; then
+ :
+ else
+ # sanity check filesystem snapshot schedule
+ if [ $((0 + $when_weekly + $when_daily + $when_hourly)) -gt 20 ]; then
+ logger -p daemon.warning \
+ "snapshot: schedule $schedule on ufs filesystem $fs would require more than maximum number of 20 possible snapshots"
+ fi
fi
# determine whether to make a snapshot
|