]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: make XFS_DQUOT_CLUSTER_SIZE_FSB part of the ondisk format
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 4 Sep 2020 20:03:20 +0000 (16:03 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Fri, 4 Sep 2020 20:03:20 +0000 (16:03 -0400)
Source kernel commit: cb64e1299364a51bf60e96f2a35df31f47aa2eee

Move the dquot cluster size #define to xfs_format.h.  It is an important
part of the ondisk format because the ondisk dquot record size is not an
even power of two, which means that the buffer size we use is
significant here because the kernel leaves slack space at the end of the
buffer to avoid having to deal with a dquot record crossing a block
boundary.

This is also an excuse to fix one of the longstanding discrepancies
between kernel and userspace libxfs headers.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_format.h
libxfs/xfs_quota_defs.h

index 3ccaf0a8ce9819480b15acc79885df53f2ab1f70..7548336ff253d02959c3a6e5ba6b30551237b417 100644 (file)
@@ -1198,6 +1198,22 @@ typedef struct xfs_dqblk {
 
 #define XFS_DQUOT_CRC_OFF      offsetof(struct xfs_dqblk, dd_crc)
 
+/*
+ * This defines the unit of allocation of dquots.
+ *
+ * Currently, it is just one file system block, and a 4K blk contains 30
+ * (136 * 30 = 4080) dquots. It's probably not worth trying to make
+ * this more dynamic.
+ *
+ * However, if this number is changed, we have to make sure that we don't
+ * implicitly assume that we do allocations in chunks of a single filesystem
+ * block in the dquot/xqm code.
+ *
+ * This is part of the ondisk format because the structure size is not a power
+ * of two, which leaves slack at the end of the disk block.
+ */
+#define XFS_DQUOT_CLUSTER_SIZE_FSB     (xfs_filblks_t)1
+
 /*
  * Remote symlink format and access functions.
  */
index 70ba784d9b0bb36c7295f8ba366786bb2ff17feb..e2da08055e6b7d4c99556500715de7c1ea1af07d 100644 (file)
@@ -18,8 +18,6 @@
 typedef uint64_t       xfs_qcnt_t;
 typedef uint16_t       xfs_qwarncnt_t;
 
-#define XFS_DQUOT_CLUSTER_SIZE_FSB (xfs_filblks_t)1
-
 /*
  * flags for q_flags field in the dquot.
  */