About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / filesystems / quota.txt

Custom Search

Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.

2	Quota subsystem
3	===============
5	Quota subsystem allows system administrator to set limits on used space and
6	number of used inodes (inode is a filesystem structure which is associated with
7	each file or directory) for users and/or groups. For both used space and number
8	of used inodes there are actually two limits. The first one is called softlimit
9	and the second one hardlimit.  A user can never exceed a hardlimit for any
10	resource (unless he has CAP_SYS_RESOURCE capability). User is allowed to exceed
11	softlimit but only for limited period of time. This period is called "grace
12	period" or "grace time". When grace time is over, user is not able to allocate
13	more space/inodes until he frees enough of them to get below softlimit.
15	Quota limits (and amount of grace time) are set independently for each
16	filesystem.
18	For more details about quota design, see the documentation in quota-tools package
19	(http://sourceforge.net/projects/linuxquota).
21	Quota netlink interface
22	=======================
23	When user exceeds a softlimit, runs out of grace time or reaches hardlimit,
24	quota subsystem traditionally printed a message to the controlling terminal of
25	the process which caused the excess. This method has the disadvantage that
26	when user is using a graphical desktop he usually cannot see the message.
27	Thus quota netlink interface has been designed to pass information about
28	the above events to userspace. There they can be captured by an application
29	and processed accordingly.
31	The interface uses generic netlink framework (see
32	http://lwn.net/Articles/208755/ and http://people.suug.ch/~tgr/libnl/ for more
33	details about this layer). The name of the quota generic netlink interface
34	is "VFS_DQUOT". Definitions of constants below are in <linux/quota.h>.
35	Since the quota netlink protocol is not namespace aware, quota netlink messages
36	are sent only in initial network namespace.
38	Currently, the interface supports only one message type QUOTA_NL_C_WARNING.
39	This command is used to send a notification about any of the above mentioned
40	events. Each message has six attributes. These are (type of the argument is
41	in parentheses):
42	        QUOTA_NL_A_QTYPE (u32)
43		  - type of quota being exceeded (one of USRQUOTA, GRPQUOTA)
44	        QUOTA_NL_A_EXCESS_ID (u64)
45		  - UID/GID (depends on quota type) of user / group whose limit
46		    is being exceeded.
47	        QUOTA_NL_A_CAUSED_ID (u64)
48		  - UID of a user who caused the event
49	        QUOTA_NL_A_WARNING (u32)
50		  - what kind of limit is exceeded:
51			QUOTA_NL_IHARDWARN - inode hardlimit
52			QUOTA_NL_ISOFTLONGWARN - inode softlimit is exceeded longer
53			  than given grace period
54			QUOTA_NL_ISOFTWARN - inode softlimit
55			QUOTA_NL_BHARDWARN - space (block) hardlimit
56			QUOTA_NL_BSOFTLONGWARN - space (block) softlimit is exceeded
57			  longer than given grace period.
58			QUOTA_NL_BSOFTWARN - space (block) softlimit
59		  - four warnings are also defined for the event when user stops
60		    exceeding some limit:
61			QUOTA_NL_IHARDBELOW - inode hardlimit
62			QUOTA_NL_ISOFTBELOW - inode softlimit
63			QUOTA_NL_BHARDBELOW - space (block) hardlimit
64			QUOTA_NL_BSOFTBELOW - space (block) softlimit
65	        QUOTA_NL_A_DEV_MAJOR (u32)
66		  - major number of a device with the affected filesystem
67	        QUOTA_NL_A_DEV_MINOR (u32)
68		  - minor number of a device with the affected filesystem
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.