Back to index

glibc  2.9
Functions
pathconf.h File Reference
#include <errno.h>
#include <unistd.h>
#include <sys/statfs.h>
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

long int __statfs_link_max (int result, const struct statfs *fsbuf)
long int __statfs_filesize_max (int result, const struct statfs *fsbuf)
long int __statfs_symlinks (int result, const struct statfs *fsbuf)
long int __statfs_chown_restricted (int result, const struct statfs *fsbuf)

Function Documentation

long int __statfs_chown_restricted ( int  result,
const struct statfs fsbuf 
)

Definition at line 191 of file pathconf.c.

{
  if (result < 0)
    {
      if (errno == ENOSYS)
       /* Not possible, return the default value.  */
       return 1;

      /* Some error occured.  */
      return -1;
    }

  int fd;
  long int retval = 1;
  switch (fsbuf->f_type)
    {
    case XFS_SUPER_MAGIC:
      /* Read the value from /proc/sys/fs/xfs/restrict_chown.  If we cannot
        read it default to assume the restriction is in place.  */
      fd = open_not_cancel_2 ("/proc/sys/fs/xfs/restrict_chown", O_RDONLY);
      if (fd != -1)
       {
         char buf[2];
         if (TEMP_FAILURE_RETRY (read_not_cancel (fd, buf, 2)) == 2
             && buf[0] >= '0' && buf[0] <= '1')
           retval = buf[0] - '0';

         close_not_cancel_no_status (fd);
       }
      break;

    default:
      break;
    }

  return retval;
}

Here is the caller graph for this function:

long int __statfs_filesize_max ( int  result,
const struct statfs fsbuf 
)

Definition at line 115 of file pathconf.c.

{
  if (result < 0)
    {
      if (errno == ENOSYS)
       /* Not possible, return the default value.  */
       return 32;

      /* Some error occured.  */
      return -1;
    }

  switch (fsbuf->f_type)
    {
    case EXT2_SUPER_MAGIC:
    case UFS_MAGIC:
    case UFS_CIGAM:
    case REISERFS_SUPER_MAGIC:
    case XFS_SUPER_MAGIC:
    case SMB_SUPER_MAGIC:
    case NTFS_SUPER_MAGIC:
    case UDF_SUPER_MAGIC:
    case JFS_SUPER_MAGIC:
    case VXFS_SUPER_MAGIC:
      return 64;

    case MSDOS_SUPER_MAGIC:
    case JFFS_SUPER_MAGIC:
    case JFFS2_SUPER_MAGIC:
    case NCP_SUPER_MAGIC:
    case ROMFS_SUPER_MAGIC:
      return 32;

    default:
      return 32;
    }
}

Here is the caller graph for this function:

long int __statfs_link_max ( int  result,
const struct statfs fsbuf 
)

Definition at line 62 of file pathconf.c.

{
  if (result < 0)
    {
      if (errno == ENOSYS)
       /* Not possible, return the default value.  */
       return LINUX_LINK_MAX;

      /* Some error occured.  */
      return -1;
    }

  switch (fsbuf->f_type)
    {
    case EXT2_SUPER_MAGIC:
      return EXT2_LINK_MAX;

    case MINIX_SUPER_MAGIC:
    case MINIX_SUPER_MAGIC2:
      return MINIX_LINK_MAX;

    case MINIX2_SUPER_MAGIC:
    case MINIX2_SUPER_MAGIC2:
      return MINIX2_LINK_MAX;

    case XENIX_SUPER_MAGIC:
      return XENIX_LINK_MAX;

    case SYSV4_SUPER_MAGIC:
    case SYSV2_SUPER_MAGIC:
      return SYSV_LINK_MAX;

    case COH_SUPER_MAGIC:
      return COH_LINK_MAX;

    case UFS_MAGIC:
    case UFS_CIGAM:
      return UFS_LINK_MAX;

    case REISERFS_SUPER_MAGIC:
      return REISERFS_LINK_MAX;

    case XFS_SUPER_MAGIC:
      return XFS_LINK_MAX;

    default:
      return LINUX_LINK_MAX;
    }
}

Here is the caller graph for this function:

long int __statfs_symlinks ( int  result,
const struct statfs fsbuf 
)

Definition at line 156 of file pathconf.c.

{
  if (result < 0)
    {
      if (errno == ENOSYS)
       /* Not possible, return the default value.  */
       return 1;

      /* Some error occured.  */
      return -1;
    }

  switch (fsbuf->f_type)
    {
    case ADFS_SUPER_MAGIC:
    case BFS_MAGIC:
    case CRAMFS_MAGIC:
    case DEVPTS_SUPER_MAGIC:
    case EFS_SUPER_MAGIC:
    case EFS_MAGIC:
    case MSDOS_SUPER_MAGIC:
    case NTFS_SUPER_MAGIC:
    case QNX4_SUPER_MAGIC:
    case ROMFS_SUPER_MAGIC:
      /* No symlink support.  */
      return 0;

    default:
      return 1;
    }
}

Here is the caller graph for this function: