forked from pool/coreutils
71 lines
2.6 KiB
Diff
71 lines
2.6 KiB
Diff
|
Upstream patch for df(1) on top of v8.23, to be removed with v8.24.
|
||
|
http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=3ab3c7bb24b8
|
||
|
|
||
|
From 3ab3c7bb24b86ef2d2fede9fe26e3ee585db5411 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
||
|
Date: Mon, 27 Oct 2014 23:37:08 +0000
|
||
|
Subject: [PATCH] df: ensure -a shows all remote file system entries
|
||
|
|
||
|
commit v8.22-125-g9d736f8 printed placeholder "-" values
|
||
|
for device names that didn't match the preferred device name
|
||
|
for a particular mount point. However that was seen to erroneously
|
||
|
suppress values for aliased host names or exports, common with
|
||
|
remote file systems.
|
||
|
|
||
|
* src/df.c (me_for_dev): Rename from devname_for_dev() so that
|
||
|
we can determine the remoteness as well as the name for the
|
||
|
preferred mount entry.
|
||
|
(get_dev): Don't output place holder values when both
|
||
|
current and preferred mount entries are remote.
|
||
|
|
||
|
Reported in http://bugs.debian.org/737399
|
||
|
---
|
||
|
src/df.c | 17 ++++++++++-------
|
||
|
1 file changed, 10 insertions(+), 7 deletions(-)
|
||
|
|
||
|
Index: src/df.c
|
||
|
===================================================================
|
||
|
--- src/df.c.orig
|
||
|
+++ src/df.c
|
||
|
@@ -703,17 +703,17 @@ filter_mount_list (bool devices_only)
|
||
|
}
|
||
|
|
||
|
/* Search a mount entry list for device id DEV.
|
||
|
- Return the corresponding device name if found or NULL if not. */
|
||
|
+ Return the corresponding mount entry if found or NULL if not. */
|
||
|
|
||
|
-static char const * _GL_ATTRIBUTE_PURE
|
||
|
-devname_for_dev (dev_t dev)
|
||
|
+static struct mount_entry const * _GL_ATTRIBUTE_PURE
|
||
|
+me_for_dev (dev_t dev)
|
||
|
{
|
||
|
struct devlist *dl = device_list;
|
||
|
|
||
|
while (dl)
|
||
|
{
|
||
|
if (dl->dev_num == dev)
|
||
|
- return dl->me->me_devname;
|
||
|
+ return dl->me;
|
||
|
dl = dl->next;
|
||
|
}
|
||
|
|
||
|
@@ -928,12 +928,15 @@ get_dev (char const *disk, char const *m
|
||
|
else if (process_all && show_all_fs)
|
||
|
{
|
||
|
/* Ensure we don't output incorrect stats for over-mounted directories.
|
||
|
- Discard stats when the device name doesn't match. */
|
||
|
+ Discard stats when the device name doesn't match. Though don't
|
||
|
+ discard when used and current mount entries are both remote due
|
||
|
+ to the possibility of aliased host names or exports. */
|
||
|
struct stat sb;
|
||
|
if (stat (stat_file, &sb) == 0)
|
||
|
{
|
||
|
- char const * devname = devname_for_dev (sb.st_dev);
|
||
|
- if (devname && ! STREQ (devname, disk))
|
||
|
+ struct mount_entry const * dev_me = me_for_dev (sb.st_dev);
|
||
|
+ if (dev_me && ! STREQ (dev_me->me_devname, disk)
|
||
|
+ && (! dev_me->me_remote || ! me_remote))
|
||
|
{
|
||
|
fstype = "-";
|
||
|
fsu.fsu_blocksize = fsu.fsu_blocks = fsu.fsu_bfree =
|