<mgorny> it seems that udev-git is b0rked while tag '173' works fine for me
<mgorny> the rule in question is:
<mgorny> also, with >173 persistent-net rules seem to get constantly recreated
for same devices
<kay> mgorny: logic bug. we only sort the keys in an index, but we don't care
about the index when reading the list, which doesn't work too well for
the rules file list where we depend on the order
- udev_list_entry_append(entry, list);
if (list->unique) {
/* allocate or enlarge sorted array if needed */
if (list->unique) {
/* allocate or enlarge sorted array if needed */
list->entries_max += add;
}
list->entries_max += add;
}
- /* insert into sorted array */
+ /* the negative i returned the insertion index */
+
+ /* insert into sorted list */
+ if ((unsigned int)i < list->entries_cur)
+ udev_list_entry_insert_before(entry, list->entries[i]);
+ else
+ udev_list_entry_append(entry, list);
+
+ /* insert into sorted array */
memmove(&list->entries[i+1], &list->entries[i],
(list->entries_cur - i) * sizeof(struct udev_list_entry *));
list->entries[i] = entry;
list->entries_cur++;
memmove(&list->entries[i+1], &list->entries[i],
(list->entries_cur - i) * sizeof(struct udev_list_entry *));
list->entries[i] = entry;
list->entries_cur++;
+ } else {
+ udev_list_entry_append(entry, list);
}
dbg(list->udev, "'%s=%s' added\n", entry->name, entry->value);
}
dbg(list->udev, "'%s=%s' added\n", entry->name, entry->value);