From dfe567b41f9cc7e78ad62aba6e19bc3848eb58ce Mon Sep 17 00:00:00 2001 From: Tim Foster Date: Wed, 22 Oct 2008 00:23:37 +0100 Subject: [PATCH] 6762213 We should not snapshot swap or dump devices by default --- src/lib/svc/method/zfs-auto-snapshot | 31 ++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/lib/svc/method/zfs-auto-snapshot b/src/lib/svc/method/zfs-auto-snapshot index 9b7a99c..fcfc13e 100644 --- a/src/lib/svc/method/zfs-auto-snapshot +++ b/src/lib/svc/method/zfs-auto-snapshot @@ -882,12 +882,39 @@ function auto_include { *false | false*) ;; *) - $PFZFS set com.sun:auto-snapshot=true $pool - ;; + FIRSTRUN_POOLS="$pool $FIRSTRUN_POOLS" + ;; esac fi done fi + + for pool in ${FIRSTRUN_POOLS} ; do + # This is the first time the service has run on this pool, + # set appropriate zfs user properties on it + $PFZFS set com.sun:auto-snapshot=true $pool + + # check for swap and dump devices and disable snapshots there + SWAP=$(swap -l | grep "/dev/zvol/dsk/$pool/" | awk '{print $1}') + for swap in $SWAP ; do + vol=$(echo $swap | sed -e 's#/dev/zvol/dsk/##') + echo "Disabling snapshots for swap device $vol" + $PFZFS set com.sun:auto-snapshot=false $vol + done + + # can't run dumpadm as a non-root user, so check for dumpadm.conf + if [ -r /etc/dumpadm.conf ] ; then + DUMP=$(grep "^DUMPADM_DEVICE=" /etc/dumpadm.conf |\ + grep "/dev/zvol/dsk/$pool/" |\ + awk -F= '{print $2}') + if [ -n "$DUMP" ] ; then + vol=$(echo $DUMP | sed -e 's#/dev/zvol/dsk/##') + echo "Disabling snapshots for dump device $vol" + $PFZFS set com.sun:auto-snapshot=false $vol + fi + fi + done + }