metropolis/pkg/supervisor: simplify error unwrap and comparison

Change-Id: I09ac13eb507197b8326820eef49760831683787f
Reviewed-on: https://review.monogon.dev/c/monogon/+/3044
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/pkg/supervisor/supervisor_processor.go b/metropolis/pkg/supervisor/supervisor_processor.go
index b88d1a0..2c583ff 100644
--- a/metropolis/pkg/supervisor/supervisor_processor.go
+++ b/metropolis/pkg/supervisor/supervisor_processor.go
@@ -274,19 +274,9 @@
 		return
 	}
 
-	// Find innermost error to check if it's a context canceled error.
-	perr := r.err
-	for {
-		if inner := errors.Unwrap(perr); inner != nil {
-			perr = inner
-			continue
-		}
-		break
-	}
-
 	// Simple case: the context was canceled and the returned error is the
 	// context error.
-	if err := ctx.Err(); err != nil && perr == err {
+	if r.err != nil && ctx.Err() != nil && errors.Is(r.err, ctx.Err()) {
 		// Mark the node as canceled successfully.
 		n.state = nodeStateCanceled
 		return