summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Smetana <t.smetana@gmail.com>2009-04-28 11:21:49 +0200
committerJim Meyering <meyering@redhat.com>2009-04-28 14:32:17 +0200
commitdbd17157d7e693b8de9737f802db0e235ff5a3e6 (patch)
treec820a31396b6091e8e4ffbe22267cae29070c7a5
parentcb9fd937437cf4f9347925f6b9c82f4e92bae6e5 (diff)
downloadcoreutils-dbd17157d7e693b8de9737f802db0e235ff5a3e6.tar.xz
df: use open(2), not stat, to trigger automounting
* src/df.c (main): When iterating over command-line arguments, attempting to ensure each backing file system is mounted, use open, not stat. stat is no longer sufficient to trigger automounting, in some cases. Based on a suggestion from Ian Kent. More details in http://bugzilla.redhat.com/497830
-rw-r--r--THANKS1
-rw-r--r--src/df.c7
2 files changed, 6 insertions, 2 deletions
diff --git a/THANKS b/THANKS
index 876a6b665..cf801c57a 100644
--- a/THANKS
+++ b/THANKS
@@ -235,6 +235,7 @@ Hugh Daniel hugh@xanadu.com
Ian Bruce ian.bruce@myrealbox.com
Iain Calder ic56@rogers.com
Ian Jackson ijackson@chiark.greenend.org.uk
+Ian Kent ikent@redhat.com
Ian Lance Taylor ian@cygnus.com
Ian Turner vectro@pipeline.com
Iida Yosiaki iida@gnu.org
diff --git a/src/df.c b/src/df.c
index 7b8a0824e..a3eb98a61 100644
--- a/src/df.c
+++ b/src/df.c
@@ -1,5 +1,5 @@
/* df - summarize free disk space
- Copyright (C) 91, 1995-2008 Free Software Foundation, Inc.
+ Copyright (C) 91, 1995-2009 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -993,12 +993,15 @@ main (int argc, char **argv)
stats = xnmalloc (argc - optind, sizeof *stats);
for (i = optind; i < argc; ++i)
{
- if (stat (argv[i], &stats[i - optind]))
+ int fd = open (argv[i], O_RDONLY | O_NOCTTY);
+ if (fd < 0 || fstat (fd, &stats[i - optind]))
{
error (0, errno, "%s", quote (argv[i]));
exit_status = EXIT_FAILURE;
argv[i] = NULL;
}
+ if (0 <= fd)
+ close (fd);
}
}