Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions snapshots/devbox/devbox.go
Original file line number Diff line number Diff line change
Expand Up @@ -1044,13 +1044,12 @@ func (o *Snapshotter) prepareLvmDirectory(ctx context.Context, snapshotDir strin
},
}

// Track LV creation and mount status for cleanup
lvCreated := false
// Track mount status for cleanup
mounted := false

// Defer cleanup: unmount and force remove LV if any step fails
defer func() {
if err != nil && lvCreated {
if err != nil {
if mounted {
// Unmount first if mounted
if unmountErr := o.unmountLvm(ctx, td); unmountErr != nil {
Expand All @@ -1069,16 +1068,15 @@ func (o *Snapshotter) prepareLvmDirectory(ctx context.Context, snapshotDir strin
if err != nil {
return td, lvName, fmt.Errorf("failed to create LVM logical volume %s: %w", lvName, err)
}
lvCreated = true

if err = o.mkfs(lvName); err != nil {
return td, lvName, fmt.Errorf("failed to create filesystem on LVM logical volume %s: %w", lvName, err)
}

mounted = true
if err = o.mountLvm(ctx, lvName, td); err != nil {
return td, lvName, fmt.Errorf("failed to mount LVM logical volume %s: %w", lvName, err)
}
mounted = true

if err := os.Mkdir(filepath.Join(td, "fs"), 0755); err != nil {
return td, lvName, fmt.Errorf("failed to create fs directory: %w", err)
Expand Down