/* * Busy block/extent entry. Indexed by a rbtree in the group to mark blocks * that have been freed but whose transactions aren't committed to disk yet.
*/ struct xfs_extent_busy { struct rb_node rb_node; /* group by-bno indexed search tree */ struct list_head list; /* transaction busy extent list */ struct xfs_group *group;
xfs_agblock_t bno;
xfs_extlen_t length; unsignedint flags; #define XFS_EXTENT_BUSY_DISCARDED 0x01 /* undergoing a discard op. */ #define XFS_EXTENT_BUSY_SKIP_DISCARD 0x02 /* do not discard */
};
/* * List used to track groups of related busy extents all the way through * to discard completion.
*/ struct xfs_busy_extents { struct list_head extent_list; struct work_struct endio_work;
/* * Owner is the object containing the struct xfs_busy_extents to free * once the busy extents have been processed. If only the * xfs_busy_extents object needs freeing, then point this at itself.
*/ void *owner;
};
/* * Zoned RTGs don't need to track busy extents, as the actual block freeing only * happens by a zone reset, which forces out all transactions that touched the * to be reset zone first.
*/ #define xfs_group_has_extent_busy(mp, type) \
((type) == XG_TYPE_AG || !xfs_has_zoned((mp)))
#endif/* __XFS_EXTENT_BUSY_H__ */
Messung V0.5
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.