[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gnulib] fsusage.c update
From: |
Bruno Haible |
Subject: |
[Bug-gnulib] fsusage.c update |
Date: |
Tue, 17 Dec 2002 12:53:39 +0100 (CET) |
Hi,
I did this change. The old code was not correct because when safe_read
returns a value > 0 but < buflen, it doesn't set errno. Whereas
full_read does.
* fsusage.c: Include full_read.h.
(get_fs_usage): Use full_read instead of safe_read.
*** fsusage.c 23 Nov 2002 15:08:35 -0000 1.43
--- fsusage.c 17 Dec 2002 11:47:53 -0000
***************
*** 81,86 ****
--- 81,88 ----
int statvfs ();
#endif
+ #include "full-read.h"
+
/* Many space usage primitives use all 1 bits to denote a value that is
not applicable or unknown. Propagate this information by returning
a uintmax_t value that is all 1 bits if X is all 1 bits, even if X
***************
*** 105,112 ****
otherwise, use PROPAGATE_ALL_ONES. */
#define PROPAGATE_TOP_BIT(x) ((x) | ~ (EXTRACT_TOP_BIT (x) - 1))
- int safe_read ();
-
/* Fill in the fields of FSP with information about space usage for
the filesystem on which PATH resides.
DISK is the device on which PATH is mounted, for space-getting
--- 107,112 ----
***************
*** 163,169 ****
if (fd < 0)
return -1;
lseek (fd, (off_t) SUPERBOFF, 0);
! if (safe_read (fd, (char *) &fsd, sizeof fsd) != sizeof fsd)
{
close (fd);
return -1;
--- 163,169 ----
if (fd < 0)
return -1;
lseek (fd, (off_t) SUPERBOFF, 0);
! if (full_read (fd, (char *) &fsd, sizeof fsd) != sizeof fsd)
{
close (fd);
return -1;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug-gnulib] fsusage.c update,
Bruno Haible <=