Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  * Copyright (c) 2010 David Chinner.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * Copyright (c) 2011 Christoph Hellwig.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * All Rights Reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #ifndef __XFS_EXTENT_BUSY_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #define	__XFS_EXTENT_BUSY_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) struct xfs_mount;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) struct xfs_trans;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) struct xfs_alloc_arg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)  * Busy block/extent entry.  Indexed by a rbtree in perag to mark blocks that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)  * have been freed but whose transactions aren't committed to disk yet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)  * Note that we use the transaction ID to record the transaction, not the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)  * transaction structure itself. See xfs_extent_busy_insert() for details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) struct xfs_extent_busy {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	struct rb_node	rb_node;	/* ag by-bno indexed search tree */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	struct list_head list;		/* transaction busy extent list */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	xfs_agnumber_t	agno;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	xfs_agblock_t	bno;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	xfs_extlen_t	length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	unsigned int	flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define XFS_EXTENT_BUSY_DISCARDED	0x01	/* undergoing a discard op. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #define XFS_EXTENT_BUSY_SKIP_DISCARD	0x02	/* do not discard */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) xfs_extent_busy_insert(struct xfs_trans *tp, xfs_agnumber_t agno,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	xfs_agblock_t bno, xfs_extlen_t len, unsigned int flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) xfs_extent_busy_clear(struct xfs_mount *mp, struct list_head *list,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	bool do_discard);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) xfs_extent_busy_search(struct xfs_mount *mp, xfs_agnumber_t agno,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	xfs_agblock_t bno, xfs_extlen_t len);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) xfs_extent_busy_reuse(struct xfs_mount *mp, xfs_agnumber_t agno,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) xfs_extent_busy_trim(struct xfs_alloc_arg *args, xfs_agblock_t *bno,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 		xfs_extlen_t *len, unsigned *busy_gen);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) xfs_extent_busy_flush(struct xfs_mount *mp, struct xfs_perag *pag,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	unsigned busy_gen);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) xfs_extent_busy_wait_all(struct xfs_mount *mp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) xfs_extent_busy_ag_cmp(void *priv, struct list_head *a, struct list_head *b);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) static inline void xfs_extent_busy_sort(struct list_head *list)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 	list_sort(NULL, list, xfs_extent_busy_ag_cmp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #endif /* __XFS_EXTENT_BUSY_H__ */