mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-20 10:51:48 +02:00
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
This commit is contained in:
committed by
Jim Meyering
parent
cb9fd93743
commit
dbd17157d7
1
THANKS
1
THANKS
@@ -235,6 +235,7 @@ Hugh Daniel hugh@xanadu.com
|
|||||||
Ian Bruce ian.bruce@myrealbox.com
|
Ian Bruce ian.bruce@myrealbox.com
|
||||||
Iain Calder ic56@rogers.com
|
Iain Calder ic56@rogers.com
|
||||||
Ian Jackson ijackson@chiark.greenend.org.uk
|
Ian Jackson ijackson@chiark.greenend.org.uk
|
||||||
|
Ian Kent ikent@redhat.com
|
||||||
Ian Lance Taylor ian@cygnus.com
|
Ian Lance Taylor ian@cygnus.com
|
||||||
Ian Turner vectro@pipeline.com
|
Ian Turner vectro@pipeline.com
|
||||||
Iida Yosiaki iida@gnu.org
|
Iida Yosiaki iida@gnu.org
|
||||||
|
|||||||
7
src/df.c
7
src/df.c
@@ -1,5 +1,5 @@
|
|||||||
/* df - summarize free disk space
|
/* 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
|
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
|
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);
|
stats = xnmalloc (argc - optind, sizeof *stats);
|
||||||
for (i = optind; i < argc; ++i)
|
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]));
|
error (0, errno, "%s", quote (argv[i]));
|
||||||
exit_status = EXIT_FAILURE;
|
exit_status = EXIT_FAILURE;
|
||||||
argv[i] = NULL;
|
argv[i] = NULL;
|
||||||
}
|
}
|
||||||
|
if (0 <= fd)
|
||||||
|
close (fd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user