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