From e784de8a66c3645fdd3a54939b5b844f3bacd82d Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 13 Jul 2022 23:55:59 -0600 Subject: diskio.File: Add .Close() and don't have .Size() return an error --- lib/btrfs/btrfsvol/lvm.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'lib/btrfs/btrfsvol/lvm.go') diff --git a/lib/btrfs/btrfsvol/lvm.go b/lib/btrfs/btrfsvol/lvm.go index 4d40ccd..149c8cd 100644 --- a/lib/btrfs/btrfsvol/lvm.go +++ b/lib/btrfs/btrfsvol/lvm.go @@ -10,6 +10,8 @@ import ( "os" "reflect" + "github.com/datawire/dlib/derror" + "git.lukeshu.com/btrfs-progs-ng/lib/containers" "git.lukeshu.com/btrfs-progs-ng/lib/diskio" ) @@ -58,15 +60,27 @@ func (lv *LogicalVolume[PhysicalVolume]) Name() string { return lv.name } -func (lv *LogicalVolume[PhysicalVolume]) Size() (LogicalAddr, error) { +func (lv *LogicalVolume[PhysicalVolume]) Size() LogicalAddr { lv.init() lastChunk := lv.logical2physical.Max() if lastChunk == nil { - return 0, nil + return 0 } - return lastChunk.Value.LAddr.Add(lastChunk.Value.Size), nil + return lastChunk.Value.LAddr.Add(lastChunk.Value.Size) } +func (lv *LogicalVolume[PhysicalVolume]) Close() error { + var errs derror.MultiError + for _, dev := range lv.id2pv { + if err := dev.Close(); err != nil && err == nil { + errs = append(errs, err) + } + } + if errs != nil { + return errs + } + return nil +} func (lv *LogicalVolume[PhysicalVolume]) AddPhysicalVolume(id DeviceID, dev PhysicalVolume) error { lv.init() if other, exists := lv.id2pv[id]; exists { -- cgit v1.2.3-2-g168b