From dba73f8f9749b0efd78c1d406ac20e58930a8021 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 19 Jan 2026 09:49:38 -0600 Subject: Fix zfsrollback to process children before parents Sort datasets by path depth (deepest first) before rolling back. ZFS requires children to be rolled back before their parents, otherwise rollback can fail or skip datasets. --- custom/zfsrollback | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/custom/zfsrollback b/custom/zfsrollback index b68e11a..ee858f6 100755 --- a/custom/zfsrollback +++ b/custom/zfsrollback @@ -95,8 +95,9 @@ else exit 0 fi - # Find all datasets with this snapshot - mapfile -t targets < <(echo "$snapshots" | grep "@${snap_name}$") + # Find all datasets with this snapshot, sorted by depth (deepest first) + # This ensures children are rolled back before parents + mapfile -t targets < <(echo "$snapshots" | grep "@${snap_name}$" | awk -F'@' '{print length($1), $0}' | sort -rn | cut -d' ' -f2-) if [ ${#targets[@]} -eq 0 ]; then echo "Error: No datasets found with snapshot @${snap_name}" -- cgit v1.2.3