* src/df.c (get_disk): Use the same heuristic used in
get_point() to select the shortest file system mount point,
in an attempt to show the base mounted file system.
* NEWS: Mention the bug fix.
df displayed the symlink's device rather than that for the device node.
[This bug was present in "the beginning".]
+ df now processes disk device nodes correctly in the presence of bind mounts.
+ Now df shows the base mounted file system rather than the last one mounted.
+ [This bug was present in "the beginning".]
+
install now removes the target file if the strip program failed for any
reason. Before, that file was left behind, sometimes even with wrong
permissions.
if (resolved && resolved[0] == '/')
disk = resolved;
+ size_t best_match_len = SIZE_MAX;
for (me = mount_list; me; me = me->me_next)
{
if (STREQ (disk, me->me_devname))
- best_match = me;
+ {
+ size_t len = strlen (me->me_mountdir);
+ if (len < best_match_len)
+ {
+ best_match = me;
+ if (len == 1) /* Traditional root. */
+ break;
+ else
+ best_match_len = len;
+ }
+ }
}
free (resolved);