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:
parent
53f6f39178
commit
92b4982228
@ -370,14 +370,6 @@ devlink_region_snapshot_get_by_id(struct devlink_region *region, u32 id)
|
|||||||
return NULL;
|
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_DEVLINK BIT(0)
|
||||||
#define DEVLINK_NL_FLAG_NEED_PORT BIT(1)
|
#define DEVLINK_NL_FLAG_NEED_PORT BIT(1)
|
||||||
#define DEVLINK_NL_FLAG_NEED_SB BIT(2)
|
#define DEVLINK_NL_FLAG_NEED_SB BIT(2)
|
||||||
@ -3595,6 +3587,16 @@ out_free_msg:
|
|||||||
nlmsg_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,
|
static int devlink_nl_cmd_region_get_doit(struct sk_buff *skb,
|
||||||
struct genl_info *info)
|
struct genl_info *info)
|
||||||
{
|
{
|
||||||
@ -3690,8 +3692,7 @@ static int devlink_nl_cmd_region_del(struct sk_buff *skb,
|
|||||||
if (!snapshot)
|
if (!snapshot)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
devlink_nl_region_notify(region, snapshot, DEVLINK_CMD_REGION_DEL);
|
devlink_region_snapshot_del(region, snapshot);
|
||||||
devlink_region_snapshot_del(snapshot);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6743,7 +6744,7 @@ void devlink_region_destroy(struct devlink_region *region)
|
|||||||
|
|
||||||
/* Free all snapshots of region */
|
/* Free all snapshots of region */
|
||||||
list_for_each_entry_safe(snapshot, ts, ®ion->snapshot_list, list)
|
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);
|
list_del(®ion->list);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user