Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6fde16e

Browse files
committed
fix removing Committed
when removing Committed, the ZFS dataset `foopool/foofs/42@snapshot` was removed but `foopool/foofs/42` was not removed. Fix #22 Signed-off-by: Akihiro Suda <[email protected]>
1 parent 31af176 commit 6fde16e

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

zfs.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -298,18 +298,20 @@ func (z *snapshotter) Remove(ctx context.Context, key string) (err error) {
298298

299299
datasetName := filepath.Join(z.dataset.Name, id)
300300
if k == snapshots.KindCommitted {
301-
datasetName += "@" + snapshotSuffix
301+
snapshotName := datasetName + "@" + snapshotSuffix
302+
snapshot, err := zfs.GetDataset(snapshotName)
303+
if err != nil {
304+
return err
305+
}
306+
if err = destroySnapshot(snapshot); err != nil {
307+
return err
308+
}
302309
}
303310
dataset, err := zfs.GetDataset(datasetName)
304311
if err != nil {
305312
return err
306313
}
307-
if k == snapshots.KindCommitted {
308-
err = destroySnapshot(dataset)
309-
} else {
310-
err = destroy(dataset)
311-
}
312-
if err != nil {
314+
if err = destroy(dataset); err != nil {
313315
return err
314316
}
315317
err = t.Commit()

0 commit comments

Comments
 (0)