// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (C) 2023 Oracle. All Rights Reserved. * Author: Darrick J. Wong <djwong@kernel.org>
*/ #ifndef __XFS_SCRUB_RTBITMAP_H__ #define __XFS_SCRUB_RTBITMAP_H__
/* * We use an xfile to construct new bitmap blocks for the portion of the * rtbitmap file that we're replacing. Whereas the ondisk bitmap must be * accessed through the buffer cache, the xfile bitmap supports direct * word-level accesses. Therefore, we create a small abstraction for linear * access.
*/ typedefunsignedlonglong xrep_wordoff_t; typedefunsignedint xrep_wordcnt_t;
/* Mask to round an rtx down to the nearest bitmap word. */ #define XREP_RTBMP_WORDMASK ((1ULL << XFS_NBWORDLOG) - 1)
/* rtword position of xfile as we write buffers to disk. */
xrep_wordoff_t prep_wordoff;
/* In-Memory rtbitmap for repair. */ union xfs_rtword_raw words[];
};
#ifdef CONFIG_XFS_ONLINE_REPAIR int xrep_setup_rtbitmap(struct xfs_scrub *sc, struct xchk_rtbitmap *rtb);
/* * How big should the words[] buffer be? * * For repairs, we want a full fsblock worth of space so that we can memcpy a * buffer full of 1s into the xfile bitmap. The xfile bitmap doesn't have * rtbitmap block headers, so we don't use blockwsize. Scrub doesn't use the * words buffer at all.
*/ staticinlineunsignedint
xchk_rtbitmap_wordcnt( struct xfs_scrub *sc)
{ if (xchk_could_repair(sc)) return sc->mp->m_sb.sb_blocksize >> XFS_WORDLOG; return 0;
} #else # define xrep_setup_rtbitmap(sc, rtb) (0) # define xchk_rtbitmap_wordcnt(sc) (0) #endif/* CONFIG_XFS_ONLINE_REPAIR */
#endif/* __XFS_SCRUB_RTBITMAP_H__ */
Messung V0.5
¤ Dauer der Verarbeitung: 0.10 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.