Penguin

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

The subcmd is one of

Q_QUOTAON
Enable quotas. The addr argument is the pathname 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 ).
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 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 thatof 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)?, quotacheck(8)?, quotaon(8)?

This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.