aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislusf <chris.lu@gmail.com>2025-12-03 19:54:28 -0800
committerchrislusf <chris.lu@gmail.com>2025-12-03 19:54:28 -0800
commit7ae3b9274881a40dd209dff1b3c7bb55ed8f3377 (patch)
treee78f9766a2006429ba5c8de19182d1bdb8cab6d4
parent4e908e0bce48827a4e44a16df169071ce4c2e103 (diff)
downloadseaweedfs-csi-driver-7ae3b9274881a40dd209dff1b3c7bb55ed8f3377.tar.xz
seaweedfs-csi-driver-7ae3b9274881a40dd209dff1b3c7bb55ed8f3377.zip
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.
-rw-r--r--pkg/driver/nodeserver.go4
1 files changed, 4 insertions, 0 deletions
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 {