QUOTACTL(2) 1990 QUOTACTL(2) NNAAMMEE quotactl - manipulate disk quotas SSYYNNOOPPSSIISS ##iinncclluuddee <<uuffss//qquuoottaa..hh>> /* _f_o_r ``_u_f_s'' _q_u_o_t_a_s */ qquuoottaaccttll((ppaatthh,, ccmmdd,, iidd,, aaddddrr)) cchhaarr **ppaatthh;; iinntt ccmmdd,, iidd;; cchhaarr **aaddddrr;; DDEESSCCRRIIPPTTIIOONN The _q_u_o_t_a_c_t_l call is used to enable and disable quotas and to manipulate disk quotas for filesystems on which quotas have been enabled. _P_a_t_h is the path name of any file within the mounted filesystem to which the quota control command is to be applied. The _c_m_d parameter indicates a command to be applied to the _i_d. _A_d_d_r is the address of an optional, com- mand specific, data structure that is copied in or out of the system. The interpretation of _a_d_d_r is given with each command. Currently quotas are supported only for the ``ufs'' filesys- tem. For ``ufs'', a command is composed of a primary com- mand (see below) and a command type that is used to inter- pret the _i_d. Types are supported for interpretation of user identifiers and group identifiers. The ``ufs'' specific commands are: Q_QUOTAON Enable disk quotas for the filesystem specified by _p_a_t_h. The command type specifies the type of the quo- tas being enabled. The _a_d_d_r argument specifies a file from which to take the quotas. The quota file must exist; it is normally created with the _q_u_o_t_a_c_h_e_c_k(8) program. The _i_d argument is unused. Only the super- user may turn quotas on. Q_QUOTAOFF Disable disk quotas for the filesystem specified by _p_a_t_h . The command type specifies the type of the quo- tas being disabled. The _a_d_d_r and _i_d arguments are unused. Only the super-user may turn quotas off. Q_GETQUOTA Get disk quota limits and current usage for the user or group (as determined by the command type) with identif- ier _i_d. _A_d_d_r is a pointer to a struct dqblk structure (defined in <_u_f_s/_q_u_o_t_a._h>). Q_SETQUOTA Set disk quota limits for the user or group (as Printed 7/27/90 June 1 QUOTACTL(2) 1990 QUOTACTL(2) determined by the command type) with identifier _i_d. _A_d_d_r is a pointer to a struct dqblk structure (defined in <_u_f_s/_q_u_o_t_a._h>). The usage fields of the dqblk structure are ignored. This call is restricted to the super-user. Q_SETUSE Set disk usage limits for the user or group (as deter- mined by the command type) with identifier _i_d. _A_d_d_r is a pointer to a struct dqblk structure (defined in <_u_f_s/_q_u_o_t_a._h>). Only the usage fields are used. This call is restricted to the super-user. Q_SYNC Update the on-disk copy of quota usages. The command type specifies which type of quotas are to be updated. The _i_d and _a_d_d_r parameters are ignored. RREETTUURRNN VVAALLUUEE A successful call returns 0, otherwise the value -1 is returned and the global variable _e_r_r_n_o indicates the reason for the failure. EERRRROORRSS A _q_u_o_t_a_c_t_l call will fail when one of the following occurs: [EOPNOTSUPP] The kernel has not been compiled with the QUOTA option. [EUSERS] The quota table cannot be expanded. [EINVAL] _C_m_d or the command type is invalid. [EINVAL] A pathname contains a character with the high-order bit set. [EACCES] In Q_QUOTAON, the quota file is not a plain file. [EACCES] Search permission is denied for a component of a path prefix. [ENOTDIR] A component of a path prefix is not a direc- tory. [ENAMETOOLONG] A component of either pathname exceeded 255 characters, or the entire length of either path name exceeded 1023 characters. [ENOENT] A filename does not exist. [ELOOP] Too many symbolic links were encountered in Printed 7/27/90 June 2 QUOTACTL(2) 1990 QUOTACTL(2) translating a pathname. [EROFS] In Q_QUOTAON, the quota file resides on a read-only filesystem. [EIO] An I/O error occurred while reading from or writing to a file containing quotas. [EFAULT] An invalid _a_d_d_r is supplied; the associated structure could not be copied in or out of the kernel. [EFAULT] _P_a_t_h points outside the process's allocated address space. [EPERM] The call is privileged and the caller was not the super-user. SSEEEE AALLSSOO quota(1), fstab(5), edquota(8), quotacheck(8), quotaon(8), repquota(8) BBUUGGSS There should be some way to integrate this call with the resource limit interface provided by _s_e_t_r_l_i_m_i_t(2) and _g_e_t_r_l_i_m_i_t(2). Printed 7/27/90 June 3