mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
selftests: net: lib.sh: Don't defer failed commands
Usually the autodefer helpers in lib.sh are expected to be run in context where success is the expected outcome. However when using them for feature detection, failure can legitimately occur. But the failed command still schedules a cleanup, which will likely fail again. Instead, only schedule deferred cleanup when the positive command succeeds. This way of organizing the cleanup has the added benefit that now the return code from these functions reflects whether the command passed. Signed-off-by: Petr Machata <petrm@nvidia.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Link: https://patch.msgid.link/af10a5bb82ea11ead978cf903550089e006d7e70.1757004393.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
ed07c8f2b8
commit
fa57032941
|
|
@ -547,8 +547,8 @@ ip_link_add()
|
|||
{
|
||||
local name=$1; shift
|
||||
|
||||
ip link add name "$name" "$@"
|
||||
defer ip link del dev "$name"
|
||||
ip link add name "$name" "$@" && \
|
||||
defer ip link del dev "$name"
|
||||
}
|
||||
|
||||
ip_link_set_master()
|
||||
|
|
@ -556,8 +556,8 @@ ip_link_set_master()
|
|||
local member=$1; shift
|
||||
local master=$1; shift
|
||||
|
||||
ip link set dev "$member" master "$master"
|
||||
defer ip link set dev "$member" nomaster
|
||||
ip link set dev "$member" master "$master" && \
|
||||
defer ip link set dev "$member" nomaster
|
||||
}
|
||||
|
||||
ip_link_set_addr()
|
||||
|
|
@ -566,8 +566,8 @@ ip_link_set_addr()
|
|||
local addr=$1; shift
|
||||
|
||||
local old_addr=$(mac_get "$name")
|
||||
ip link set dev "$name" address "$addr"
|
||||
defer ip link set dev "$name" address "$old_addr"
|
||||
ip link set dev "$name" address "$addr" && \
|
||||
defer ip link set dev "$name" address "$old_addr"
|
||||
}
|
||||
|
||||
ip_link_has_flag()
|
||||
|
|
@ -590,8 +590,8 @@ ip_link_set_up()
|
|||
local name=$1; shift
|
||||
|
||||
if ! ip_link_is_up "$name"; then
|
||||
ip link set dev "$name" up
|
||||
defer ip link set dev "$name" down
|
||||
ip link set dev "$name" up && \
|
||||
defer ip link set dev "$name" down
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -600,8 +600,8 @@ ip_link_set_down()
|
|||
local name=$1; shift
|
||||
|
||||
if ip_link_is_up "$name"; then
|
||||
ip link set dev "$name" down
|
||||
defer ip link set dev "$name" up
|
||||
ip link set dev "$name" down && \
|
||||
defer ip link set dev "$name" up
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -609,20 +609,20 @@ ip_addr_add()
|
|||
{
|
||||
local name=$1; shift
|
||||
|
||||
ip addr add dev "$name" "$@"
|
||||
defer ip addr del dev "$name" "$@"
|
||||
ip addr add dev "$name" "$@" && \
|
||||
defer ip addr del dev "$name" "$@"
|
||||
}
|
||||
|
||||
ip_route_add()
|
||||
{
|
||||
ip route add "$@"
|
||||
defer ip route del "$@"
|
||||
ip route add "$@" && \
|
||||
defer ip route del "$@"
|
||||
}
|
||||
|
||||
bridge_vlan_add()
|
||||
{
|
||||
bridge vlan add "$@"
|
||||
defer bridge vlan del "$@"
|
||||
bridge vlan add "$@" && \
|
||||
defer bridge vlan del "$@"
|
||||
}
|
||||
|
||||
wait_local_port_listen()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user