udev-node: drop redundant trial of devlink creation
Previously, the devlink was created based on the priority saved in udev database. So, we needed to reevaluate devlinks after database is saved. But now the priority is stored in the symlink under /run/udev/links, and the loop of devlink creation is controlled with the timestamp of the directory. So, the double evaluation is not necessary anymore.
This commit is contained in:
@@ -416,7 +416,7 @@ static int link_update(sd_device *dev, const char *slink_in, bool add) {
|
||||
_cleanup_free_ char *slink = NULL, *dirname = NULL;
|
||||
const char *slink_name;
|
||||
char name_enc[NAME_MAX+1];
|
||||
int i, r, retries;
|
||||
int r;
|
||||
|
||||
assert(dev);
|
||||
assert(slink_in);
|
||||
@@ -443,11 +443,7 @@ static int link_update(sd_device *dev, const char *slink_in, bool add) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
/* If the database entry is not written yet we will just do one iteration and possibly wrong symlink
|
||||
* will be fixed in the second invocation. */
|
||||
retries = sd_device_get_is_initialized(dev) > 0 ? LINK_UPDATE_MAX_RETRIES : 1;
|
||||
|
||||
for (i = 0; i < retries; i++) {
|
||||
for (unsigned i = 0; i < LINK_UPDATE_MAX_RETRIES; i++) {
|
||||
_cleanup_free_ char *target = NULL;
|
||||
struct stat st1 = {}, st2 = {};
|
||||
|
||||
@@ -472,7 +468,7 @@ static int link_update(sd_device *dev, const char *slink_in, bool add) {
|
||||
log_device_debug_errno(dev, errno, "Failed to remove '%s', ignoring: %m", slink);
|
||||
|
||||
(void) rmdir_parents(slink, "/dev");
|
||||
break;
|
||||
return 0;
|
||||
}
|
||||
|
||||
r = node_symlink(dev, target, slink);
|
||||
@@ -487,7 +483,7 @@ static int link_update(sd_device *dev, const char *slink_in, bool add) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return i < LINK_UPDATE_MAX_RETRIES ? 0 : -ELOOP;
|
||||
return -ELOOP;
|
||||
}
|
||||
|
||||
static int device_get_devpath_by_devnum(sd_device *dev, char **ret) {
|
||||
|
||||
Reference in New Issue
Block a user