Skip to content

Commit

Permalink
refactor: abstract replicaLvolFilter as a func
Browse files Browse the repository at this point in the history
Signed-off-by: Shuo Wu <[email protected]>
  • Loading branch information
shuo-wu committed Nov 7, 2024
1 parent 701bfa7 commit d35b63d
Showing 1 changed file with 12 additions and 32 deletions.
44 changes: 12 additions & 32 deletions pkg/spdk/replica.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,20 +182,21 @@ func NewReplica(ctx context.Context, replicaName, lvsName, lvsUUID string, specS
}
}

func (r *Replica) replicaLvolFilter(bdev *spdktypes.BdevInfo) bool {
if bdev == nil || len(bdev.Aliases) < 1 || bdev.DriverSpecific.Lvol == nil {
return false
}
lvolName := spdktypes.GetLvolNameFromAlias(bdev.Aliases[0])
return IsReplicaLvol(r.Name, lvolName) || (len(r.ActiveChain) > 0 && r.ActiveChain[0] != nil && r.ActiveChain[0].Name == lvolName)
}

func (r *Replica) Sync(spdkClient *spdkclient.Client) (err error) {
r.Lock()
defer r.Unlock()
// It's better to let the server send the update signal

// This lvol and nvmf subsystem fetch should be protected by replica lock, in case of snapshot operations happened during the sync-up.
replicaLvolFilter := func(bdev *spdktypes.BdevInfo) bool {
var lvolName string
if len(bdev.Aliases) == 1 {
lvolName = spdktypes.GetLvolNameFromAlias(bdev.Aliases[0])
}
return IsReplicaLvol(r.Name, lvolName) || (r.ActiveChain[0] != nil && r.ActiveChain[0].Name == lvolName)
}
bdevLvolMap, err := GetBdevLvolMapWithFilter(spdkClient, replicaLvolFilter)
bdevLvolMap, err := GetBdevLvolMapWithFilter(spdkClient, r.replicaLvolFilter)
if err != nil {
return err
}
Expand Down Expand Up @@ -832,14 +833,7 @@ func (r *Replica) Delete(spdkClient *spdkclient.Client, cleanupRequired bool, su

// Clean up the valid snapshot tree
if len(r.ActiveChain) > 1 {
replicaLvolFilter := func(bdev *spdktypes.BdevInfo) bool {
var lvolName string
if len(bdev.Aliases) == 1 {
lvolName = spdktypes.GetLvolNameFromAlias(bdev.Aliases[0])
}
return IsReplicaLvol(r.Name, lvolName) || (r.ActiveChain[0] != nil && r.ActiveChain[0].Name == lvolName)
}
bdevLvolMap, err := GetBdevLvolMapWithFilter(spdkClient, replicaLvolFilter)
bdevLvolMap, err := GetBdevLvolMapWithFilter(spdkClient, r.replicaLvolFilter)
if err != nil {
return err
}
Expand Down Expand Up @@ -1113,14 +1107,7 @@ func (r *Replica) SnapshotRevert(spdkClient *spdkclient.Client, snapshotName str
return nil, err
}

replicaLvolFilter := func(bdev *spdktypes.BdevInfo) bool {
var lvolName string
if len(bdev.Aliases) == 1 {
lvolName = spdktypes.GetLvolNameFromAlias(bdev.Aliases[0])
}
return IsReplicaLvol(r.Name, lvolName) || (r.ActiveChain[0] != nil && r.ActiveChain[0].Name == lvolName)
}
bdevLvolMap, err := GetBdevLvolMapWithFilter(spdkClient, replicaLvolFilter)
bdevLvolMap, err := GetBdevLvolMapWithFilter(spdkClient, r.replicaLvolFilter)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -1576,14 +1563,7 @@ func (r *Replica) RebuildingDstFinish(spdkClient *spdkclient.Client) (err error)

_ = r.doCleanupForRebuildingDst(spdkClient, r.rebuildingDstCache.rebuildingState == types.ProgressStateError)

replicaLvolFilter := func(bdev *spdktypes.BdevInfo) bool {
var lvolName string
if len(bdev.Aliases) == 1 {
lvolName = spdktypes.GetLvolNameFromAlias(bdev.Aliases[0])
}
return IsReplicaLvol(r.Name, lvolName) || (r.ActiveChain[0] != nil && r.ActiveChain[0].Name == lvolName)
}
bdevLvolMap, err := GetBdevLvolMapWithFilter(spdkClient, replicaLvolFilter)
bdevLvolMap, err := GetBdevLvolMapWithFilter(spdkClient, r.replicaLvolFilter)
if err != nil {
return err
}
Expand Down

0 comments on commit d35b63d

Please sign in to comment.