QUOTACTL(2)         Linux Programmer's Manual         QUOTACTL(2)



NAME

       quotactl - manipulate disk quotas


SYNOPSIS

       #include <sys/types.h>
       #include <sys/quota.h>

       int  quotactl  (int  cmd,  const  char  *special, int id ,
       caddr_t addr);

       #include <linux/unistd.h>

       _syscall4(int, quotactl, int, cmd, const char *, special ,
       int, id, caddr_t, addr);


DESCRIPTION

       The quota system defines for each user and/or group a soft
       limit and a hard limit bounding the amount of  disk  space
       that  can  be used on a given file system.  The hard limit
       cannot be crossed.  The soft limit  can  be  crossed,  but
       warnings  will  ensue.  Moreover, the user cannot be above
       the soft limit for more than one week (by  default)  at  a
       time: after this week the soft limit counts as hard limit.

       The quotactl system  call  manipulates  these  quota.  Its
       first argument is of the form QCMD(subcmd,type) where type
       is either USRQUOTA or GRPQUOTA (for user quota  and  group
       quota, respectively), and subcmd is described below.

       The  second  argument  special is the block special device
       these quota apply to.  It must be mounted.

       The third argument id is the user or group id these  quota
       apply to (when relevant).

       The  fourth  argument addr is the address of a data struc-
       ture, depending on the command.

       The subcmd is one of

       Q_QUOTAON  Enable quotas. The addr argument is  the  path-
                  name  of the file containing the quotas for the
                  filesystem.

       Q_QUOTAOFF Disable quotas.

       Q_GETQUOTA Get limits and current usage of disk space. The
                  addr argument is a pointer to a dqblk structure
                  (defined in <sys/quota.h>).

       Q_SETQUOTA Set  limits  and  current  usage;  addr  is  as
                  before.

       Q_SETQLIM  Set limits; addr is as before.



Linux 1.3.88              14 April 1996                         1





QUOTACTL(2)         Linux Programmer's Manual         QUOTACTL(2)


       Q_SETUSE   Set usage.

       Q_SYNC     Sync disk copy of a filesystems quotas.

       Q_GETSTATS Get collected stats.



RETURN VALUE

       On  success, quotactl returns 0. On error, -1 is returned,
       and errno is set appropriately.


ERRORS

       ENOPKG   The kernel was compiled without quota support.

       EFAULT   Bad addr value.

       EINVAL   type is not a known quota type. Or, special could
                not be found.

       ENOTBLK  special is not a block special device.

       ENODEV   special cannot be found in the mount table.

       EACCES   The quota file is not an ordinary file.

       EIO      Cannot read or write the quota file.

       EMFILE   Too many open files: cannot open quota file.

       EBUSY    Q_QUOTAON  was  asked,  but  quota  were  enabled
                already.

       ESRCH    Q_GETQUOTA or Q_SETQUOTA or Q_SETUSE or Q_SETQLIM
                was  asked  for  a  file  system that didn't have
                quota enabled.

       EPERM    The process was not root (for the  file  system),
                and Q_GETQUOTA was asked for another id than that
                of the process itself,  or  anything  other  than
                Q_GETSTATS or Q_SYNC was asked.


CONFORMING TO

       BSD


SEE ALSO

       quota(1),   getrlimit(2),  setrlimit(2),  ulimit(2),  quo-
       tacheck(8), quotaon(8)










Linux 1.3.88              14 April 1996                         2