diff options
| author | chrislusf <chris.lu@gmail.com> | 2025-12-03 19:54:28 -0800 |
|---|---|---|
| committer | chrislusf <chris.lu@gmail.com> | 2025-12-03 19:54:28 -0800 |
| commit | 7ae3b9274881a40dd209dff1b3c7bb55ed8f3377 (patch) | |
| tree | e78f9766a2006429ba5c8de19182d1bdb8cab6d4 | |
| parent | 4e908e0bce48827a4e44a16df169071ce4c2e103 (diff) | |
| download | seaweedfs-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.go | 4 |
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 { |
