Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update.
2004-04-02  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/internal_statvfs64.c: New file.
	* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
	Add internal_statvfs64.
	* sysdeps/unix/sysv/linux/internal_statvfs.c: Allow to be used to
	compile 64bit version.
	* sysdeps/unix/sysv/linux/statvfs64.c: Use __fstatfs64 and skip
	compatibility code if __ASSUME_STATFS64 is defined.
	* sysdeps/unix/sysv/linux/fstatvfs64.c: Likewise.

	* sysdeps/unix/sysv/linux/statfs64.c: Don't add __no_statfs64 if
	__ASSUME_STATFS64 != 0.

2004-04-02  Thorsten Kukuk  <kukuk@firun.suse.de>

	* nis/nss_nis/nis-ethers.c (saveit): Fix return codes in error case.
	* nis/nss_nis/nis-initgroups.c (saveit): Likewise.
	* nis/nss_nis/nis-proto.c (saveit): Likewise.
	* nis/nss_nis/nis-rpc.c (saveit): Likewise.
	* nis/nss_nis/nis-service.c (saveit): Likewise.
  • Loading branch information
Ulrich Drepper committed Apr 3, 2004
1 parent 4eb6619 commit 08c9a55
Show file tree
Hide file tree
Showing 12 changed files with 143 additions and 57 deletions.
22 changes: 22 additions & 0 deletions ChangeLog
@@ -1,3 +1,25 @@
2004-04-02 Ulrich Drepper <drepper@redhat.com>

* sysdeps/unix/sysv/linux/internal_statvfs64.c: New file.
* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
Add internal_statvfs64.
* sysdeps/unix/sysv/linux/internal_statvfs.c: Allow to be used to
compile 64bit version.
* sysdeps/unix/sysv/linux/statvfs64.c: Use __fstatfs64 and skip
compatibility code if __ASSUME_STATFS64 is defined.
* sysdeps/unix/sysv/linux/fstatvfs64.c: Likewise.

* sysdeps/unix/sysv/linux/statfs64.c: Don't add __no_statfs64 if
__ASSUME_STATFS64 != 0.

2004-04-02 Thorsten Kukuk <kukuk@firun.suse.de>

* nis/nss_nis/nis-ethers.c (saveit): Fix return codes in error case.
* nis/nss_nis/nis-initgroups.c (saveit): Likewise.
* nis/nss_nis/nis-proto.c (saveit): Likewise.
* nis/nss_nis/nis-rpc.c (saveit): Likewise.
* nis/nss_nis/nis-service.c (saveit): Likewise.

2004-04-02 Jakub Jelinek <jakub@redhat.com>

* nis/nss: Add SERVICES_AUTHORITATIVE.
Expand Down
4 changes: 2 additions & 2 deletions nis/nss_nis/nis-ethers.c
Expand Up @@ -52,13 +52,13 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
int invallen, char *indata)
{
if (instatus != YP_TRUE)
return instatus;
return 1;

if (inkey && inkeylen > 0 && inval && invallen > 0)
{
struct response *newp = malloc (sizeof (struct response) + invallen + 1);
if (newp == NULL)
return YP_FALSE; /* We have no error code for out of memory */
return 1; /* We have no error code for out of memory */

if (start == NULL)
start = newp;
Expand Down
4 changes: 2 additions & 2 deletions nis/nss_nis/nis-initgroups.c
Expand Up @@ -57,14 +57,14 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
intern_t *intern = (intern_t *) indata;

if (instatus != YP_TRUE)
return instatus;
return 1;

if (inkey && inkeylen > 0 && inval && invallen > 0)
{
struct response_t *newp = malloc (sizeof (struct response_t)
+ invallen + 1);
if (newp == NULL)
return YP_FALSE; /* We have no error code for out of memory */
return 1; /* We have no error code for out of memory */

if (intern->start == NULL)
intern->start = newp;
Expand Down
4 changes: 2 additions & 2 deletions nis/nss_nis/nis-proto.c
Expand Up @@ -49,13 +49,13 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
int invallen, char *indata)
{
if (instatus != YP_TRUE)
return instatus;
return 1;

if (inkey && inkeylen > 0 && inval && invallen > 0)
{
struct response *newp = malloc (sizeof (struct response) + invallen + 1);
if (newp == NULL)
return YP_FALSE; /* We have no error code for out of memory */
return 1; /* We have no error code for out of memory */

if (start == NULL)
start = newp;
Expand Down
4 changes: 2 additions & 2 deletions nis/nss_nis/nis-rpc.c
Expand Up @@ -57,14 +57,14 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
intern_t *intern = (intern_t *)indata;

if (instatus != YP_TRUE)
return instatus;
return 1;

if (inkey && inkeylen > 0 && inval && invallen > 0)
{
struct response_t *newp = malloc (sizeof (struct response_t)
+ invallen + 1);
if (newp == NULL)
return YP_FALSE; /* We have no error code for out of memory */
return 1; /* We have no error code for out of memory */

if (intern->start == NULL)
intern->start = newp;
Expand Down
4 changes: 2 additions & 2 deletions nis/nss_nis/nis-service.c
Expand Up @@ -70,14 +70,14 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
intern_t *intern = (intern_t *) indata;

if (instatus != YP_TRUE)
return instatus;
return 1;

if (inkey && inkeylen > 0 && inval && invallen > 0)
{
struct response_t *newp = malloc (sizeof (struct response_t)
+ invallen + 1);
if (newp == NULL)
return YP_FALSE; /* We have no error code for out of memory */
return 1; /* We have no error code for out of memory */

if (intern->start == NULL)
intern->start = newp;
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/unix/sysv/linux/Makefile
Expand Up @@ -137,7 +137,7 @@ CFLAGS-ypclnt.c = -DUSE_BINDINGDIR=1
endif

ifeq ($(subdir),io)
sysdep_routines += xstatconv internal_statvfs
sysdep_routines += xstatconv internal_statvfs internal_statvfs64
endif

ifeq ($(subdir),elf)
Expand Down
67 changes: 46 additions & 21 deletions sysdeps/unix/sysv/linux/fstatvfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1996,1997,1998,2000,2001,2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
Expand All @@ -18,31 +18,56 @@
02111-1307 USA. */

#include <errno.h>
#include <sys/statvfs.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/statfs.h>
#include <sys/statvfs.h>
#include "kernel-features.h"


extern void __internal_statvfs64 (const char *name, struct statvfs64 *buf,
struct statfs64 *fsbuf, struct stat64 *st);


/* Return information about the filesystem on which FD resides. */
int
__fstatvfs64 (int fd, struct statvfs64 *buf)
{
struct statvfs buf32;

if (fstatvfs (fd, &buf32) < 0)
return -1;

buf->f_bsize = buf32.f_bsize;
buf->f_frsize = buf32.f_frsize;
buf->f_blocks = buf32.f_blocks;
buf->f_bfree = buf32.f_bfree;
buf->f_bavail = buf32.f_bavail;
buf->f_files = buf32.f_files;
buf->f_ffree = buf32.f_ffree;
buf->f_favail = buf32.f_favail;
buf->f_fsid = buf32.f_fsid;
buf->f_flag = buf32.f_flag;
buf->f_namemax = buf32.f_namemax;
memcpy (buf->__f_spare, buf32.__f_spare, sizeof (buf32.__f_spare));

return 0;
struct statfs64 fsbuf;
int res = __fstatfs64 (fd, &fsbuf);

#ifndef __ASSUME_STATFS64
if (res < 0 && errno == ENOSYS)
{
struct statvfs buf32;

res = fstatvfs (fd, &buf32);
if (res == 0)
{
buf->f_bsize = buf32.f_bsize;
buf->f_frsize = buf32.f_frsize;
buf->f_blocks = buf32.f_blocks;
buf->f_bfree = buf32.f_bfree;
buf->f_bavail = buf32.f_bavail;
buf->f_files = buf32.f_files;
buf->f_ffree = buf32.f_ffree;
buf->f_favail = buf32.f_favail;
buf->f_fsid = buf32.f_fsid;
buf->f_flag = buf32.f_flag;
buf->f_namemax = buf32.f_namemax;
memcpy (buf->__f_spare, buf32.__f_spare, sizeof (buf32.__f_spare));
}
}
#endif

if (res == 0)
{
/* Convert the result. */
struct stat64 st;
__internal_statvfs64 (NULL, buf, &fsbuf,
fstat64 (fd, &st) == -1 ? NULL : &st);
}

return res;
}
weak_alias (__fstatvfs64, fstatvfs64)
13 changes: 10 additions & 3 deletions sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -1,4 +1,4 @@
/* Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
/* Copyright (C) 1998-2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
Expand Down Expand Up @@ -31,9 +31,16 @@
#include "linux_fsinfo.h"


#ifndef STATFS
# define STATFS statfs
# define STATVFS statvfs
# define INTERNAL_STATVFS __internal_statvfs
#endif


void
__internal_statvfs (const char *name, struct statvfs *buf,
struct statfs *fsbuf, struct stat64 *st)
INTERNAL_STATVFS (const char *name, struct STATVFS *buf,
struct STATFS *fsbuf, struct stat64 *st)
{
/* Now fill in the fields we have information for. */
buf->f_bsize = fsbuf->f_bsize;
Expand Down
4 changes: 4 additions & 0 deletions sysdeps/unix/sysv/linux/internal_statvfs64.c
@@ -0,0 +1,4 @@
#define STATFS statfs64
#define STATVFS statvfs64
#define INTERNAL_STATVFS __internal_statvfs64
#include "internal_statvfs.c"
5 changes: 4 additions & 1 deletion sysdeps/unix/sysv/linux/statfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
Copyright (C) 1996,1997,1998,1999,2000,2003 Free Software Foundation, Inc.
Copyright (C) 1996-2000,2003,2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
Expand All @@ -23,7 +23,10 @@
#include <stddef.h>
#include <sysdep.h>


# if __ASSUME_STATFS64 == 0
int __no_statfs64 attribute_hidden;
#endif

/* Return information about the filesystem on which FILE resides. */
int
Expand Down
67 changes: 46 additions & 21 deletions sysdeps/unix/sysv/linux/statvfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1998, 2000, 2001, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
Expand All @@ -18,32 +18,57 @@
02111-1307 USA. */

#include <errno.h>
#include <sys/statvfs.h>
#include <stddef.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/statfs.h>
#include <sys/statvfs.h>
#include "kernel-features.h"


extern void __internal_statvfs64 (const char *name, struct statvfs64 *buf,
struct statfs64 *fsbuf, struct stat64 *st);


/* Return information about the filesystem on which FILE resides. */
int
__statvfs64 (const char *file, struct statvfs64 *buf)
{
struct statvfs buf32;

if (statvfs (file, &buf32) < 0)
return -1;

buf->f_bsize = buf32.f_bsize;
buf->f_frsize = buf32.f_frsize;
buf->f_blocks = buf32.f_blocks;
buf->f_bfree = buf32.f_bfree;
buf->f_bavail = buf32.f_bavail;
buf->f_files = buf32.f_files;
buf->f_ffree = buf32.f_ffree;
buf->f_favail = buf32.f_favail;
buf->f_fsid = buf32.f_fsid;
buf->f_flag = buf32.f_flag;
buf->f_namemax = buf32.f_namemax;
memcpy (buf->__f_spare, buf32.__f_spare, sizeof (buf32.__f_spare));

return 0;
struct statfs64 fsbuf;
int res = __statfs64 (file, &fsbuf);

#ifndef __ASSUME_STATFS64
if (res < 0 && errno == ENOSYS)
{
struct statvfs buf32;

res = statvfs (file, &buf32);
if (res == 0)
{
buf->f_bsize = buf32.f_bsize;
buf->f_frsize = buf32.f_frsize;
buf->f_blocks = buf32.f_blocks;
buf->f_bfree = buf32.f_bfree;
buf->f_bavail = buf32.f_bavail;
buf->f_files = buf32.f_files;
buf->f_ffree = buf32.f_ffree;
buf->f_favail = buf32.f_favail;
buf->f_fsid = buf32.f_fsid;
buf->f_flag = buf32.f_flag;
buf->f_namemax = buf32.f_namemax;
memcpy (buf->__f_spare, buf32.__f_spare, sizeof (buf32.__f_spare));
}
}
#endif

if (res == 0)
{
/* Convert the result. */
struct stat64 st;
__internal_statvfs64 (file, buf, &fsbuf,
stat64 (file, &st) == -1 ? NULL : &st);
}

return res;
}
weak_alias (__statvfs64, statvfs64)

0 comments on commit 08c9a55

Please sign in to comment.