mirror of
https://github.com/systemd/systemd.git
synced 2026-08-03 06:30:30 +00:00
udev: update devlink with the newer device node even when priority is equivalent
Several udev rules depends on the previous behavior, i.e. that udev replaces the devlink with the newer device node when the priority is equivalent. Let's relax the optimization done by331aa7aa15. Follow-up for331aa7aa15. Note, the offending commit drops O(N) of file reads per uevent, and this commit does not change the computational order. So, hopefully the performance impact of this change is small enough. Fixes #28141.
This commit is contained in:
@@ -467,13 +467,13 @@ static int link_update(sd_device *dev, const char *slink, bool add) {
|
||||
/* The devlink priority is downgraded. Another device may have a higher
|
||||
* priority now. Let's find the device node with the highest priority. */
|
||||
} else {
|
||||
if (current_prio >= prio)
|
||||
/* The devlink with equal or higher priority already exists and is
|
||||
* owned by another device. Hence, it is not necessary to recreate it. */
|
||||
if (current_prio > prio)
|
||||
/* The devlink with a higher priority already exists and is owned by
|
||||
* another device. Hence, it is not necessary to recreate it. */
|
||||
return 0;
|
||||
|
||||
/* This device has a higher priority than the current. Let's create the
|
||||
* devlink to our device node. */
|
||||
/* This device has the equal or a higher priority than the current. Let's
|
||||
* create the devlink to our device node. */
|
||||
return node_symlink(dev, NULL, slink);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user