diff --git a/pkg/nfs/nodeserver.go b/pkg/nfs/nodeserver.go index 86f1dab8..bae12d31 100644 --- a/pkg/nfs/nodeserver.go +++ b/pkg/nfs/nodeserver.go @@ -139,7 +139,8 @@ func (ns *NodeServer) NodeUnpublishVolume(ctx context.Context, req *csi.NodeUnpu return nil, status.Error(codes.Internal, err.Error()) } if notMnt { - return nil, status.Error(codes.NotFound, "Volume not mounted") + klog.V(2).Infof("NodeUnpublishVolume: Targetpath %s of volumeID(%s) is not mounted", targetPath, volumeID) + return &csi.NodeUnpublishVolumeResponse{}, nil } klog.V(2).Infof("NodeUnpublishVolume: CleanupMountPoint %s on volumeID(%s)", targetPath, volumeID) diff --git a/pkg/nfs/nodeserver_test.go b/pkg/nfs/nodeserver_test.go index a559c61e..406e275a 100644 --- a/pkg/nfs/nodeserver_test.go +++ b/pkg/nfs/nodeserver_test.go @@ -189,9 +189,8 @@ func TestNodeUnpublishVolume(t *testing.T) { expectedErr: status.Error(codes.Internal, "fake IsLikelyNotMountPoint: fake error"), }, { - desc: "[Error] Volume not mounted", - req: csi.NodeUnpublishVolumeRequest{TargetPath: targetFile, VolumeId: "vol_1"}, - expectedErr: status.Error(codes.NotFound, "Volume not mounted"), + desc: "[Success] Volume not mounted", + req: csi.NodeUnpublishVolumeRequest{TargetPath: targetFile, VolumeId: "vol_1"}, }, }