Provided by: manpages-dev_2.17-1_all bug


       quotactl - manipulate disk quota


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

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

       #include <linux/unistd.h>

       #include <errno.h>

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


       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 structure,  depending
       on the command.

       The subcmd is one of

       Q_QUOTAON  Enable  quota. The addr argument is the pathname of the file
                  containing the quota for the filesystem.

       Q_QUOTAOFF Disable quota.

       Q_GETQUOTA Get limits  and  current  usage  of  disk  space.  The  addr
                  argument  is  a  pointer  to  a  dqblk structure (defined in

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

       Q_SETQLIM  Set limits; addr is as before.

       Q_SETUSE   Set usage.

       Q_SYNC     Sync disk copy of a filesystem’s quota.

       Q_GETSTATS Get collected stats.


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


       EACCES   The quota file is not an ordinary file.

       EBUSY    Q_QUOTAON was asked, but quota were enabled already.

       EFAULT   Bad addr value.

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

       EIO      Cannot read or write the quota file.

       EMFILE   Too many open files: cannot open quota file.

       ENODEV   special cannot be found in the mount table.

       ENOPKG   The kernel was compiled without quota support.

       ENOTBLK  special is not a block special device.

       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.

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




       quota(1),   getrlimit(2),   setrlimit(2),   ulimit(3),   quotacheck(8),