devlink: send notifications for deleted snapshots on region destroy
Currently the notifications for deleted snapshots are sent only in case user deletes a snapshot manually. Send the notifications in case region is destroyed too. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
This commit is contained in:
Родитель
53f6f39178
Коммит
92b4982228
|
@ -370,14 +370,6 @@ devlink_region_snapshot_get_by_id(struct devlink_region *region, u32 id)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void devlink_region_snapshot_del(struct devlink_snapshot *snapshot)
|
||||
{
|
||||
snapshot->region->cur_snapshots--;
|
||||
list_del(&snapshot->list);
|
||||
(*snapshot->data_destructor)(snapshot->data);
|
||||
kfree(snapshot);
|
||||
}
|
||||
|
||||
#define DEVLINK_NL_FLAG_NEED_DEVLINK BIT(0)
|
||||
#define DEVLINK_NL_FLAG_NEED_PORT BIT(1)
|
||||
#define DEVLINK_NL_FLAG_NEED_SB BIT(2)
|
||||
|
@ -3595,6 +3587,16 @@ out_free_msg:
|
|||
nlmsg_free(msg);
|
||||
}
|
||||
|
||||
static void devlink_region_snapshot_del(struct devlink_region *region,
|
||||
struct devlink_snapshot *snapshot)
|
||||
{
|
||||
devlink_nl_region_notify(region, snapshot, DEVLINK_CMD_REGION_DEL);
|
||||
region->cur_snapshots--;
|
||||
list_del(&snapshot->list);
|
||||
(*snapshot->data_destructor)(snapshot->data);
|
||||
kfree(snapshot);
|
||||
}
|
||||
|
||||
static int devlink_nl_cmd_region_get_doit(struct sk_buff *skb,
|
||||
struct genl_info *info)
|
||||
{
|
||||
|
@ -3690,8 +3692,7 @@ static int devlink_nl_cmd_region_del(struct sk_buff *skb,
|
|||
if (!snapshot)
|
||||
return -EINVAL;
|
||||
|
||||
devlink_nl_region_notify(region, snapshot, DEVLINK_CMD_REGION_DEL);
|
||||
devlink_region_snapshot_del(snapshot);
|
||||
devlink_region_snapshot_del(region, snapshot);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -6743,7 +6744,7 @@ void devlink_region_destroy(struct devlink_region *region)
|
|||
|
||||
/* Free all snapshots of region */
|
||||
list_for_each_entry_safe(snapshot, ts, ®ion->snapshot_list, list)
|
||||
devlink_region_snapshot_del(snapshot);
|
||||
devlink_region_snapshot_del(region, snapshot);
|
||||
|
||||
list_del(®ion->list);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче