xref: /openbmc/linux/fs/xfs/libxfs/xfs_sb.h (revision 6c71a0574249f5e5a45fe055ab5f837023d5eeca)
10b61f8a4SDave Chinner // SPDX-License-Identifier: GPL-2.0
269116a13SDave Chinner /*
369116a13SDave Chinner  * Copyright (c) 2000-2005 Silicon Graphics, Inc.
469116a13SDave Chinner  * All Rights Reserved.
569116a13SDave Chinner  */
669116a13SDave Chinner #ifndef __XFS_SB_H__
769116a13SDave Chinner #define	__XFS_SB_H__
869116a13SDave Chinner 
9b16817b6SDave Chinner struct xfs_mount;
10b16817b6SDave Chinner struct xfs_sb;
11b16817b6SDave Chinner struct xfs_dsb;
12b16817b6SDave Chinner struct xfs_trans;
13b16817b6SDave Chinner struct xfs_fsop_geom;
14b16817b6SDave Chinner struct xfs_perag;
15b16817b6SDave Chinner 
1661e63ecbSDave Chinner extern void	xfs_log_sb(struct xfs_trans *tp);
1761e63ecbSDave Chinner extern int	xfs_sync_sb(struct xfs_mount *mp, bool wait);
18f7664b31SEric Sandeen extern int	xfs_sync_sb_buf(struct xfs_mount *mp);
194d11a402SDave Chinner extern void	xfs_sb_mount_common(struct xfs_mount *mp, struct xfs_sb *sbp);
204d11a402SDave Chinner extern void	xfs_sb_from_disk(struct xfs_sb *to, struct xfs_dsb *from);
214d11a402SDave Chinner extern void	xfs_sb_to_disk(struct xfs_dsb *to, struct xfs_sb *from);
2269116a13SDave Chinner extern void	xfs_sb_quota_from_disk(struct xfs_sb *sbp);
23fe08cc50SDave Chinner extern bool	xfs_sb_good_version(struct xfs_sb *sbp);
24a1d86e8dSDave Chinner extern uint64_t	xfs_sb_version_to_features(struct xfs_sb *sbp);
2569116a13SDave Chinner 
26b16817b6SDave Chinner extern int	xfs_update_secondary_sbs(struct xfs_mount *mp);
27b16817b6SDave Chinner 
28195f2238SDarrick J. Wong #define XFS_FS_GEOM_MAX_STRUCT_VER	(5)
2903288b19SDave Chinner extern void	xfs_fs_geometry(struct xfs_mount *mp, struct xfs_fsop_geom *geo,
30ac503a4cSDarrick J. Wong 				int struct_version);
31689e11c8SDarrick J. Wong extern int	xfs_sb_read_secondary(struct xfs_mount *mp,
32689e11c8SDarrick J. Wong 				struct xfs_trans *tp, xfs_agnumber_t agno,
33689e11c8SDarrick J. Wong 				struct xfs_buf **bpp);
34d25522f1SDarrick J. Wong extern int	xfs_sb_get_secondary(struct xfs_mount *mp,
35d25522f1SDarrick J. Wong 				struct xfs_trans *tp, xfs_agnumber_t agno,
36d25522f1SDarrick J. Wong 				struct xfs_buf **bpp);
37c368ebcdSDarrick J. Wong 
38*79ba47dfSDave Chinner bool	xfs_validate_stripe_geometry(struct xfs_mount *mp,
39*79ba47dfSDave Chinner 		__s64 sunit, __s64 swidth, int sectorsize, bool may_repair,
40*79ba47dfSDave Chinner 		bool silent);
417bc1fea9SGao Xiang 
42ea01221fSDarrick J. Wong uint8_t xfs_compute_rextslog(xfs_rtbxlen_t rtextents);
43ea01221fSDarrick J. Wong 
4469116a13SDave Chinner #endif	/* __XFS_SB_H__ */
45