summaryrefslogtreecommitdiff
path: root/quotactl.2
diff options
context:
space:
mode:
authorjkar8572 <jkar8572>2001-03-23 12:03:26 +0000
committerjkar8572 <jkar8572>2001-03-23 12:03:26 +0000
commit869fe242340fefe0540fdcf51698ba4c3c8c07bb (patch)
tree950fa3f5997c1e8ee68c0f17d4eaf17abef64f34 /quotactl.2
Initial revision
Diffstat (limited to 'quotactl.2')
-rw-r--r--quotactl.2231
1 files changed, 231 insertions, 0 deletions
diff --git a/quotactl.2 b/quotactl.2
new file mode 100644
index 0000000..006c86e
--- /dev/null
+++ b/quotactl.2
@@ -0,0 +1,231 @@
+.TH QUOTACTL 2
+.SH NAME
+quotactl \- manipulate disk quotas
+.SH SYNOPSIS
+.nf
+.B #include <linux/quota.h>
+.B #include <linux/xqm.h>
+.LP
+.B int quotactl(int cmd, char \(**special, int uid, caddr_t addr)
+.fi
+.SH DESCRIPTION
+.LP
+.IX "filesystem" "quotactl() disk quotas" "" "\fLquotactl()\fP \(em disk quotas"
+.IX "quotactl() disk quotas" "" "\fLquotactl()\fP \(em disk quotas"
+.IX "disk quotas quotactl()" "" "disk quotas \(em \fLquotactl()\fP"
+.LP
+The
+.B quotactl(\|)
+call manipulates disk quotas.
+.I cmd
+indicates a command to be applied to
+.SM UID
+.IR id
+or
+.SM GID
+.IR id .
+To set the type of quota use the
+.IR "QCMD(cmd, type)"
+macro.
+.I special
+is a pointer to a null-terminated string containing the path
+name of the block special device for the filesystem being manipulated.
+.I addr
+is the address of an optional, command specific, data structure
+which is copied in or out of the system. The interpretation of
+.I addr
+is given with each command below.
+.TP 15
+.SB Q_QUOTAON
+Turn on quotas for a filesystem.
+.I addr
+points to the path name of file containing the quotas for the filesystem.
+The quota file must exist; it is normally created with the
+.BR quotacheck (8)
+program. This call is restricted to the super-user.
+.TP
+.SB Q_QUOTAOFF
+Turn off quotas for a filesystem.
+.I addr
+and
+.I uid
+are ignored.
+This call is restricted to the super-user.
+.TP
+.SB Q_GETQUOTA
+Get disk quota limits and current usage for user or group
+.IR id .
+.I addr
+is a pointer to a
+.B dqblk
+structure (defined in
+.BR <linux/quota.h> ).
+Only the super-user may get the quotas of a user other than himself.
+.TP
+.SB Q_SETQUOTA
+Set disk quota limits and current usage for user or group
+.IR id .
+.I addr
+is a pointer to a
+.B dqblk
+structure (defined in
+.BR <linux/quota.h> ).
+This call is restricted to the super-user.
+.TP
+.SB Q_SETQLIM
+Set disk quota limits for user or group
+.IR id .
+.I addr
+is a pointer to a
+.B dqblk
+structure (defined in
+.BR <linux/quota.h> ).
+This call is restricted to the super-user.
+.TP
+.SB Q_SYNC
+Update the on-disk copy of quota usages for a filesystem.
+If
+.I special
+is null then all filesystems with active quotas are sync'ed.
+.I addr
+and
+.I uid
+are ignored.
+.PP
+For XFS filesystems making use of the XFS Quota Manager (XQM), the
+above commands are bypassed and the following commands are used:
+.TP 15
+.SB Q_XQUOTAON
+Turn on quotas for an XFS filesystem.
+XFS provides the ability to turn on/off quota limit enforcement
+with quota accounting.
+Therefore, XFS expects the addr to be a pointer to an unsigned int
+that contains either the flags XFS_QUOTA_UDQ_ACCT and/or
+XFS_QUOTA_UDQ_ENFD (for user quota), or XFS_QUOTA_GDQ_ACCT and/or
+XFS_QUOTA_GDQ_ENFD (for group quota), as defined in
+.BR <linux/xqm.h> .
+This call is restricted to the superuser.
+.TP
+.SB Q_XQUOTAOFF
+Turn off quotas for an XFS filesystem.
+As in Q_QUOTAON, XFS filesystems expect a pointer to an unsigned int
+that specifies whether quota accounting and/or limit enforcement need
+to be turned off.
+This call is restricted to the superuser.
+.TP
+.SB Q_XGETQUOTA
+Get disk quota limits and current usage for user
+.IR uid .
+.I addr
+is a pointer to a
+.B fs_disk_quota
+structure (defined in
+.BR <linux/xqm.h> ).
+Only the superuser may get the quotas of a user other than himself.
+.TP
+.SB Q_XSETQLIM
+Set disk quota limits for user
+.IR uid .
+.I addr
+is a pointer to a
+.B fs_disk_quota
+structure (defined in
+.BR <linux/xqm.h> ).
+This call is restricted to the superuser.
+.TP
+.SB Q_XGETQSTAT
+Returns a
+.B fs_quota_stat
+structure containing XFS filesystem specific quota information.
+This is useful in finding out how much space is spent to store quota
+information, and also to get quotaon/off status of a given local XFS
+filesystem.
+.TP
+.SB Q_XQUOTARM
+Free the disk space taken by disk quotas.
+Quotas must have already been turned off.
+.PP
+There is no command equivalent to
+.B Q_SYNC
+for XFS since
+.IR sync (1)
+writes quota information to disk (in addition to the other filesystem
+metadata it writes out).
+.SH RETURN VALUES
+.LP
+.B quotactl(\|)
+returns:
+.TP
+0
+on success.
+.TP
+\-1
+on failure and sets
+.B errno
+to indicate the error.
+.SH ERRORS
+.TP 15
+.SM EFAULT
+.I addr
+or
+.I special
+are invalid.
+.TP
+.SM EINVAL
+The kernel has not been compiled with the
+.SB QUOTA
+option.
+.IP
+.I cmd
+is invalid.
+.TP
+.SM ENOENT
+The file specified by
+.I special
+or
+.I addr
+does not exist.
+.TP
+.SM ENOTBLK
+.I special
+is not a block device.
+.TP
+.SM EPERM
+The call is privileged and the caller was not the super-user.
+.TP
+.SM ESRCH
+No disc quota is found for the indicated user.
+.IP
+Quotas have not been turned on for this filesystem.
+.TP
+.SM EUSERS
+The quota table is full.
+.LP
+If
+.I cmd
+is
+.BR \s-1Q_QUOTAON\s0 ,
+.B quotactl(\|)
+may set errno to:
+.TP 15
+.SM EACCES
+The quota file pointed to by
+.I addr
+exists but is not a regular file.
+.IP
+The quota file pointed to by
+.I addr
+exists but is not on the
+filesystem pointed to by
+.IR special .
+.TP
+.SM EBUSY
+.SB Q_QUOTAON
+attempted while another
+.SB Q_QUOTAON
+has already taken place.
+.SH "SEE ALSO"
+.BR quota (1),
+.BR getrlimit (2),
+.BR quotacheck (8),
+.BR quotaon (8)