design: Document project quota inode

A project quota inode was introduced into V5 superblock allowing
project quotas and group quotas to be used simultaneously. However
on "Quota Inodes" section we still mention it's not possible to
use project and group quotas at sametime.

This patch documents this behavior for V5 and later superblocks,
while keeps documented the old behavior for earlier versions.

Signed-off-by: Marco Benatto <>
[darrick: rephrase slightly]
Reviewed-by: Darrick J. Wong <>
Signed-off-by: Darrick J. Wong <>
Reviewed-by: Carlos Maiolino <>
diff --git a/design/XFS_Filesystem_Structure/internal_inodes.asciidoc b/design/XFS_Filesystem_Structure/internal_inodes.asciidoc
index f5c2654..45eeb8b 100644
--- a/design/XFS_Filesystem_Structure/internal_inodes.asciidoc
+++ b/design/XFS_Filesystem_Structure/internal_inodes.asciidoc
@@ -8,9 +8,13 @@
 == Quota Inodes
-If quotas are used, two inodes are allocated for user and group quota
-management. If project quotas are used, these replace the group quota management
-and therefore uses the group quota inode.
+Prior to version 5 filesystems, two inodes can be allocated for quota
+management.  The first inode will be used for user quotas.  The second inode
+will be used for group quotas or project quotas, depending on mount options.
+Group and project quotas are mutually exclusive features in these environments.
+In version 5 or later filesystems, each quota type is allocated its own inode,
+making it possible to use group and project quota management simultaneously.
 * Project quota's primary purpose is to track and monitor disk usage for
 directories. For this to occur, the directory inode must have the
@@ -28,7 +32,7 @@
 .Quota inode layout
-Quota information is stored in the data extents of the two reserved quota
+Quota information is stored in the data extents of the reserved quota
 inodes as an array of the +xfs_dqblk+ structures, where there is one array
 element for each ID in the system: