Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/fs/xfs/scrub/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  newbt.h   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2022-2023 Oracle.  All Rights Reserved.
 * Author: Darrick J. Wong <djwong@kernel.org>
 */

#ifndef __XFS_SCRUB_NEWBT_H__
#define __XFS_SCRUB_NEWBT_H__

struct xfs_alloc_arg;

struct xrep_newbt_resv {
 /* Link to list of extents that we've reserved. */
 struct list_head list;

 struct xfs_perag *pag;

 /* Auto-freeing this reservation if we don't commit. */
 struct xfs_alloc_autoreap autoreap;

 /* AG block of the extent we reserved. */
 xfs_agblock_t  agbno;

 /* Length of the reservation. */
 xfs_extlen_t  len;

 /* How much of this reservation has been used. */
 xfs_extlen_t  used;
};

struct xrep_newbt {
 struct xfs_scrub *sc;

 /* Custom allocation function, or NULL for xfs_alloc_vextent */
 int   (*alloc_vextent)(struct xfs_scrub *sc,
       struct xfs_alloc_arg *args,
       xfs_fsblock_t alloc_hint);

 /* List of extents that we've reserved. */
 struct list_head resv_list;

 /* Fake root for new btree. */
 union {
  struct xbtree_afakeroot afake;
  struct xbtree_ifakeroot ifake;
 };

 /* rmap owner of these blocks */
 struct xfs_owner_info oinfo;

 /* btree geometry for the bulk loader */
 struct xfs_btree_bload bload;

 /* Allocation hint */
 xfs_fsblock_t  alloc_hint;

 /* per-ag reservation type */
 enum xfs_ag_resv_type resv;
};

void xrep_newbt_init_bare(struct xrep_newbt *xnr, struct xfs_scrub *sc);
void xrep_newbt_init_ag(struct xrep_newbt *xnr, struct xfs_scrub *sc,
  const struct xfs_owner_info *oinfo, xfs_fsblock_t alloc_hint,
  enum xfs_ag_resv_type resv);
int xrep_newbt_init_inode(struct xrep_newbt *xnr, struct xfs_scrub *sc,
  int whichfork, const struct xfs_owner_info *oinfo);
int xrep_newbt_init_metadir_inode(struct xrep_newbt *xnr, struct xfs_scrub *sc);
int xrep_newbt_alloc_blocks(struct xrep_newbt *xnr, uint64_t nr_blocks);
int xrep_newbt_add_extent(struct xrep_newbt *xnr, struct xfs_perag *pag,
  xfs_agblock_t agbno, xfs_extlen_t len);
void xrep_newbt_cancel(struct xrep_newbt *xnr);
int xrep_newbt_commit(struct xrep_newbt *xnr);
int xrep_newbt_claim_block(struct xfs_btree_cur *cur, struct xrep_newbt *xnr,
  union xfs_btree_ptr *ptr);
unsigned int xrep_newbt_unused_blocks(struct xrep_newbt *xnr);

#endif /* __XFS_SCRUB_NEWBT_H__ */

Messung V0.5
C=81 H=100 G=90

¤ Dauer der Verarbeitung: 0.2 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.