From d211507e6607c046628ac5eebc79c533d0db0d00 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 9 Apr 2023 22:32:21 -0600 Subject: btrfsitem: Fix Extent.Clone() and Metadata.Clone() --- lib/btrfs/btrfsitem/item_extent.go | 4 +++- lib/btrfs/btrfsitem/item_metadata.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'lib/btrfs/btrfsitem') diff --git a/lib/btrfs/btrfsitem/item_extent.go b/lib/btrfs/btrfsitem/item_extent.go index edfef7c..cf9b739 100644 --- a/lib/btrfs/btrfsitem/item_extent.go +++ b/lib/btrfs/btrfsitem/item_extent.go @@ -54,7 +54,9 @@ func (o Extent) Clone() Extent { ret.Refs = extentInlineRefPool.Get(len(o.Refs)) copy(ret.Refs, o.Refs) for i := range ret.Refs { - ret.Refs[i].Body = o.Refs[i].Body.CloneItem() + if o.Refs[i].Body != nil { + ret.Refs[i].Body = o.Refs[i].Body.CloneItem() + } } return ret } diff --git a/lib/btrfs/btrfsitem/item_metadata.go b/lib/btrfs/btrfsitem/item_metadata.go index 10ae994..90f7622 100644 --- a/lib/btrfs/btrfsitem/item_metadata.go +++ b/lib/btrfs/btrfsitem/item_metadata.go @@ -46,7 +46,9 @@ func (o Metadata) Clone() Metadata { ret.Refs = extentInlineRefPool.Get(len(o.Refs)) copy(ret.Refs, o.Refs) for i := range ret.Refs { - ret.Refs[i].Body = o.Refs[i].Body.CloneItem() + if o.Refs[i].Body != nil { + ret.Refs[i].Body = o.Refs[i].Body.CloneItem() + } } return ret } -- cgit v1.2.3-2-g168b