Expand this man page to provide some details on the structure

of the quota data files and how they are maintained.
This commit is contained in:
Mike Pritchard 2007-02-04 07:44:40 +00:00
parent 5bcbb3c5e8
commit f4bce9c11d

View File

@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd February 22, 2001
.Dd February 3, 2007
.Dt QUOTA.USER 5
.Os
.Sh NAME
@ -39,8 +39,90 @@ These files are created by
.Xr quotacheck 8 ,
and should be edited with
.Xr edquota 8 .
It is possible to specify a different location and file name with the
.Dq Li userquota
and
.Dq Li groupquota
options in the
.Xr fstab 5
file.
.Pp
.Pp
The data files contain the following information:
.Pp
.Bl -bullet -indent offset -compact
.It
Current block usage
.It
Current number of files
.It
Soft block limit
.It
Soft file limit
.It
Hard block limit
.It
Hard file limit
.It
Block grace time remaining if over the soft limit
.It
File grace time remaining if over the soft limit
.El
.Pp
.Pp
See
.Xr edquota 8
for an explanation on the various limits and grace periods.
.Pp
During normal quota operations the
.Xr quotactl 2
interface is used to query or set quota information and the kernel
will maintain the data files as needed.
If quotas are disabled on
a file system, but marked as having quotas enabled in
.Xr fstab 5 ,
then the quota data files will be used directly.
.Pp
The data files are stored as an array of
.Dq Li struct dqblk
structures, as defined in
.In ufs/ufs/quota.h ,
and indexed by UID or GID.
The data files will be written as a sparse file if possible.
Data is only maintained for ids that have either non-zero usage or
non-zero quota limits.
If an attempt is made to access data for an id that would exist past the
end of the current data file, a quota structure with all values set
to zero will be created, and the data file extended as needed.
The
.Xr quotacheck 8
utility will truncate the data files to the minimum size needed
to store the highest id with either non-zero file usage or
non-zero quota limits.
.Pp
The data record for id 0 has special meaning. If the
.Dq Dv dqb_btime
or
.Dq Dv dbq_itime
fields are non-zero, they are used to indicate the grace period on
that file system for users who have exceeded their soft limit.
These times can be set by
.Xr edquota 8
with the
.Fl t
flag.
If no explicit grace period has been set with
.Xr edquota 8 ,
then the default value of 7 days will be used.
The default values are defined by
.Dv MAX_DQ_TIME
and
.Dv MAX_IQ_TIME
in
.In ufs/ufs/quota.h .
.Sh SEE ALSO
.Xr quota 1 ,
.Xr quotactl 2 ,
.Xr fstab 5 ,
.Xr edquota 8 ,
.Xr quotacheck 8 ,