File Index
Files and directories
Sign in
FILE

xfs_zones.h

File preview with syntax highlighting.

linux-6.19.14/fs/xfs/libxfs/xfs_zones.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef _LIBXFS_ZONES_H
 3#define _LIBXFS_ZONES_H
 4
 5struct xfs_rtgroup;
 6
 7/*
 8 * In order to guarantee forward progress for GC we need to reserve at least
 9 * two zones:  one that will be used for moving data into and one spare zone
10 * making sure that we have enough space to relocate a nearly-full zone.
11 * To allow for slightly sloppy accounting for when we need to reserve the
12 * second zone, we actually reserve three as that is easier than doing fully
13 * accurate bookkeeping.
14 */
15#define XFS_GC_ZONES		3U
16
17/*
18 * In addition we need two zones for user writes, one open zone for writing
19 * and one to still have available blocks without resetting the open zone
20 * when data in the open zone has been freed.
21 */
22#define XFS_RESERVED_ZONES	(XFS_GC_ZONES + 1)
23#define XFS_MIN_ZONES		(XFS_RESERVED_ZONES + 1)
24
25/*
26 * Always keep one zone out of the general open zone pool to allow for GC to
27 * happen while other writers are waiting for free space.
28 */
29#define XFS_OPEN_GC_ZONES	1U
30#define XFS_MIN_OPEN_ZONES	(XFS_OPEN_GC_ZONES + 1U)
31
32/*
33 * For zoned devices that do not have a limit on the number of open zones, and
34 * for regular devices using the zoned allocator, use the most common SMR disks
35 * limit (128) as the default limit on the number of open zones.
36 */
37#define XFS_DEFAULT_MAX_OPEN_ZONES	128
38
39bool xfs_zone_validate(struct blk_zone *zone, struct xfs_rtgroup *rtg,
40	xfs_rgblock_t *write_pointer);
41
42#endif /* _LIBXFS_ZONES_H */
~/ Read-only file preview.