summaryrefslogtreecommitdiff
path: root/usr/src/man/man4i/quotactl.4i
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/man/man4i/quotactl.4i')
-rw-r--r--usr/src/man/man4i/quotactl.4i227
1 files changed, 227 insertions, 0 deletions
diff --git a/usr/src/man/man4i/quotactl.4i b/usr/src/man/man4i/quotactl.4i
new file mode 100644
index 0000000000..47ede04ec9
--- /dev/null
+++ b/usr/src/man/man4i/quotactl.4i
@@ -0,0 +1,227 @@
+.\" Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved
+.\" Copyright (c) 2017, Joyent, Inc.
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.Dd October 28, 2017
+.Dt QUOTACTL 4I
+.Os
+.Sh NAME
+.Nm quotactl
+.Nd manipulate disk quotas
+.Sh SYNOPSIS
+.In sys/fs/ufs_quota.h
+.Fn "int ioctl" "int fd" "Q_QUOTACTL" "struct quotctl *qp"
+.Sh DESCRIPTION
+This
+.Fn ioctl
+call manipulates disk quotas.
+.Fa fd
+is the file descriptor returned by the
+.Xr open 2
+system call after opening the
+.Pa quotas
+file (located in the root directory of the filesystem running quotas).
+.Dv Q_QUOTACTL
+is defined in
+.Pa /usr/include/sys/fs/ufs_quota.h .
+.Fa qp
+is the address of the
+.Vt quotctl
+structure which is defined as
+.Bd -literal -offset 2n
+struct quotctl {
+ int op;
+ uid_t uid;
+ caddr_t addr;
+};
+.Ed
+.Pp
+.Fa op
+indicates an operation to be applied to the user
+.Sy ID
+.Fa uid .
+.Po
+See below.
+.Pc
+.Fa addr
+is the address of an optional, command specific, data
+structure which is copied in or out of the system.
+The interpretation of
+.Fa addr
+is given with each value of
+.Fa op
+below.
+.Bl -tag -width Q_GETQUOTA
+.It Sy Q_QUOTAON
+Turn on quotas for a file system.
+.Fa addr
+points to the full pathname of the
+.Pa quotas
+file.
+.Fa uid
+is ignored.
+It is recommended that
+.Fa uid
+have the value of
+.Sy 0 .
+This call is restricted to the super-user.
+.It Dv Q_QUOTAOFF
+Turn off quotas for a file system.
+.Fa addr
+and
+.Fa uid
+are ignored.
+It is
+recommended that
+.Fa addr
+have the value of
+.Sy NULL
+and
+.Fa uid
+have the value of
+.Sy 0 .
+This call is restricted to the super-user.
+.It Dv Q_GETQUOTA
+Get disk quota limits and current usage for user
+.Fa uid .
+.Fa addr
+is a pointer to a
+.Vt dqblk
+structure
+.Po
+defined in
+.In sys/fs/ufs_quota.h
+.Pc .
+Only the super-user may get the quotas of a user other than himself.
+.It Dv Q_SETQUOTA
+Set disk quota limits and current usage for user
+.Fa uid .
+.Fa addr
+is a pointer to a
+.Vt dqblk
+structure
+.Po
+defined in
+.In sys/fs/ufs_quota.h
+.Pc .
+This call is restricted to the super-user.
+.It Dv Q_SETQLIM
+Set disk quota limits for user
+.Fa uid .
+.Fa addr
+is a pointer to a
+.Vt dqblk
+structure
+.Po
+defined in
+.In sys/fs/ufs_quota.h
+.Pc .
+This call is restricted to the super-user.
+.It Dv Q_SYNC
+Update the on-disk copy of quota usages for this file system.
+.Fa addr
+and
+.Fa uid
+are ignored.
+.It Dv Q_ALLSYNC
+Update the on-disk copy of quota usages for all file systems with active
+quotas.
+.Fa addr
+and
+.Fa uid
+are ignored.
+.El
+.Sh RETURN VALUES
+This
+Fn ioctl
+returns:
+.Bl -tag -width xx
+.It Sy 0
+on success.
+.It Sy \(mi1
+on failure and sets
+.Va errno
+to indicate the error.
+.El
+.Sh FILES
+.Bl -tag -width x
+.It Pa /usr/include/sys/fs/ufs_quota.h
+quota-related structure/function definitions and defines
+.El
+.Sh ERRORS
+.Bl -tag -width EFAULT
+.It Er EFAULT
+.Fa addr
+is invalid.
+.It Er EINVAL
+The kernel has not been compiled with the
+.Sy QUOTA
+option.
+.Fa op
+is invalid.
+.It Er ENOENT
+The
+.Pa quotas
+file specified by
+.Fa addr
+does not exist.
+.It Er EPERM
+The call is privileged and the calling process did not assert
+.Brq Sy PRIV_SYS_MOUNT
+in the effective set.
+.It Er ESRCH
+No disk quota is found for the indicated user.
+Quotas have not been turned on for this file system.
+.It Er EUSERS
+The quota table is full.
+.El
+.Pp
+If
+.Fa op
+is
+.Dv Q_QUOTAON ,
+.Fn ioctl
+may set
+.Va errno
+to:
+.Bl -tag -width EACCES
+.It Er EACCES
+The quota file pointed to by
+.Fa addr
+exists but is not a regular file.
+The quota file pointed to by
+.Fa addr
+exists but is not on the file system pointed to by
+.Fa special .
+.It Er EIO
+Internal I/O error while attempting to read the
+.Pa quotas
+file pointed to by
+.Fa addr .
+.El
+.Sh SEE ALSO
+.Xr getrlimit 2 ,
+.Xr mount 2 ,
+.Xr quota 8 ,
+.Xr quotacheck 8 ,
+.Xr quotaon 8
+.Sh BUGS
+There should be some way to integrate this call with the resource limit
+interface provided by
+.Xr setrlimit 2
+and
+.Xr getrlimit 2 .
+.Pp
+This call is incompatible with Melbourne quotas.