Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
QUOTACTL(2)							   QUOTACTL(2)

NAME
       quotactl	- manipulate disk quotas

SYNOPSIS
       #include	<linux/quota.h>
       #include	<linux/xqm.h>

       long quotactl(int cmd, char *special, qid_t id, caddr_t addr)

DESCRIPTION
       The  quotactl()	call manipulates disk quotas.  cmd indicates a command
       to be applied to	UID id or GID id.  To set the type of  quota  use  the
       QCMD(cmd,  type)	 macro.	  special  is  a  pointer to a null-terminated
       string containing the path name of the block  special  device  for  the
       filesystem being	manipulated.  addr is the address of an	optional, com-
       mand specific, data structure which is copied in	or out of the  system.
       The interpretation of addr is given with	each command below.

       Q_QUOTAON      Turn  on	quotas	for  a filesystem.  addr points	to the
		      path name	of file	containing the quotas for the filesys-
		      tem.   The quota file must exist;	it is normally created
		      with the quotacheck(8) program.  This call is restricted
		      to the super-user.

       Q_QUOTAOFF     Turn  off	 quotas	 for  a	 filesystem.   addr and	id are
		      ignored.	This call is restricted	to the super-user.

       Q_GETQUOTA     Get disk quota limits and	 current  usage	 for  user  or
		      group  id.   addr	 is a pointer to a mem_dqblk structure
		      (defined in <linux/quota.h>).  Only the  super-user  may
		      get the quotas of	a user other than himself.

       Q_SETQUOTA     Set  disk	 quota	limits	and  current usage for user or
		      group id.	 addr is a pointer to  a  mem_dqblk  structure
		      (defined	in  <linux/quota.h>).  This call is restricted
		      to the super-user.

       Q_SETQLIM      Set disk quota limits for	user or	group id.  addr	 is  a
		      pointer	to   a	 mem_dqblk   structure	 (defined   in
		      <linux/quota.h>).	 This call is restricted to the	super-
		      user.

       Q_SETUSE	      Set  current  usage  for	user  or  group	id.  addr is a
		      pointer	to   a	 mem_dqblk   structure	 (defined   in
		      <linux/quota.h>).	 This call is restricted to the	super-
		      user.

       Q_SYNC	      Update the on-disk copy of quota usages for  a  filesys-
		      tem.   If	 special  is  null  then  all filesystems with
		      active quotas are	sync'ed.  addr and id are ignored.

       Q_GETSTATS     Get statistics and other generic information about quota
		      subsystem.   addr	 should	be a pointer to	dqstats	struc-
		      ture (defined in <linux/quota.h>)	in which  data	should
		      be stored.  special and id are ignored.

       New quota format	also allows following additional calls:

       Q_GETINFO      Get  information	(like  grace  times)  about quotafile.
		      addr  should  be	a  pointer  to	mem_dqinfo   structure
		      (defined in _linux/quota.h_).  id	is ignored.

       Q_SETINFO      Set  information	about  quotafile.   addr  should  be a
		      pointer	to   mem_dqinfo	   structure	(defined    in
		      _linux/quota.h_).	  id  is  ignored.  This  operation is
		      restricted to super-user.

       Q_SETGRACE     Set grace	times in information  about  quotafile.	  addr
		      should  be a pointer to mem_dqinfo structure (defined in
		      _linux/quota.h_).	 id  is	 ignored.  This	 operation  is
		      restricted to super-user.

       Q_SETFLAGS     Set  flags  in  information about	quotafile. These flags
		      are defined in _linux/quota.h_.	Note  that  there  are
		      currently	no defined flags.  addr	should be a pointer to
		      mem_dqinfo structure (defined in	_linux/quota.h_).   id
		      is  ignored. This	operation is restricted	to super-user.

       For XFS filesystems making use of the  XFS  Quota  Manager  (XQM),  the
       above commands are bypassed and the following commands are used:

       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
		      <linux/xqm.h>.   This  call  is  restricted to the supe-
		      ruser.

       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 enforce-
		      ment  need to be turned off.  This call is restricted to
		      the superuser.

       Q_XGETQUOTA    Get disk quota limits and	current	 usage	for  user  id.
		      addr  is a pointer to a fs_disk_quota structure (defined
		      in <linux/xqm.h>).  Only the superuser may get the  quo-
		      tas of a user other than himself.

       Q_XSETQLIM     Set disk quota limits for	user id.  addr is a pointer to
		      a	fs_disk_quota structure	 (defined  in  <linux/xqm.h>).
		      This call	is restricted to the superuser.

       Q_XGETQSTAT    Returns	a   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.

       Q_XQUOTARM     Free  the	 disk space taken by disk quotas.  Quotas must
		      have already been	turned off.

       There is	no command equivalent to Q_SYNC	for XFS	since  sync(1)	writes
       quota information to disk (in addition to the other filesystem metadata
       it writes out).

RETURN VALUES
       quotactl() returns:

       0      on success.

       -1     on failure and sets errno	to indicate the	error.

ERRORS
       EFAULT	      addr or special are invalid.

       EINVAL	      The kernel has not been compiled with the	QUOTA  option.

		      cmd is invalid.

       ENOENT	      The file specified by special or addr does not exist.

       ENOTBLK	      special is not a block device.

       EPERM	      The call is privileged and the caller was	not the	super-
		      user.

       ESRCH	      No disc quota is found for the indicated user.

		      Quotas have not been turned on for this filesystem.

       EUSERS	      The quota	table is full.

       If cmd is Q_QUOTAON, quotactl() may set errno to:

       EACCES	      The quota	file pointed to	by addr	exists but  is	not  a
		      regular file.

		      The  quota  file pointed to by addr exists but is	not on
		      the filesystem pointed to	by special.

       EBUSY	      Q_QUOTAON	attempted while	another	Q_QUOTAON has  already
		      taken place.

SEE ALSO
       quota(1), getrlimit(2), quotacheck(8), quotaon(8)

								   QUOTACTL(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=quotactl&sektion=2&manpath=Red+Hat+Linux%2fi386+9>

home | help