From 7ae3b9274881a40dd209dff1b3c7bb55ed8f3377 Mon Sep 17 00:00:00 2001 From: chrislusf Date: Wed, 3 Dec 2025 19:54:28 -0800 Subject: fix: cleanup staged mount on quota application failure Address CodeRabbit review - if volume.Stage() succeeds but volume.Quota() fails, clean up the staged mount before returning the error to avoid leaving an orphaned FUSE process. --- pkg/driver/nodeserver.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/driver/nodeserver.go b/pkg/driver/nodeserver.go index e8890dd..e65038e 100644 --- a/pkg/driver/nodeserver.go +++ b/pkg/driver/nodeserver.go @@ -380,6 +380,10 @@ func (ns *NodeServer) stageNewVolume(volumeID, stagingTargetPath string, volCont if capacity, err := k8s.GetVolumeCapacity(volumeID); err == nil { if err := volume.Quota(capacity); err != nil { glog.Warningf("failed to apply quota for volume %s: %v", volumeID, err) + // Clean up the staged mount since we're returning an error + if unstageErr := volume.Unstage(stagingTargetPath); unstageErr != nil { + glog.Errorf("failed to unstage volume %s after quota failure: %v", volumeID, unstageErr) + } return nil, err } } else { -- cgit v1.2.3