1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2000-2005 Silicon Graphics, Inc. 4*4882a593Smuzhiyun * All Rights Reserved. 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun #ifndef __XFS_SB_H__ 7*4882a593Smuzhiyun #define __XFS_SB_H__ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun struct xfs_mount; 10*4882a593Smuzhiyun struct xfs_sb; 11*4882a593Smuzhiyun struct xfs_dsb; 12*4882a593Smuzhiyun struct xfs_trans; 13*4882a593Smuzhiyun struct xfs_fsop_geom; 14*4882a593Smuzhiyun struct xfs_perag; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun /* 17*4882a593Smuzhiyun * perag get/put wrappers for ref counting 18*4882a593Smuzhiyun */ 19*4882a593Smuzhiyun extern struct xfs_perag *xfs_perag_get(struct xfs_mount *, xfs_agnumber_t); 20*4882a593Smuzhiyun extern struct xfs_perag *xfs_perag_get_tag(struct xfs_mount *, xfs_agnumber_t, 21*4882a593Smuzhiyun int tag); 22*4882a593Smuzhiyun extern void xfs_perag_put(struct xfs_perag *pag); 23*4882a593Smuzhiyun extern int xfs_initialize_perag_data(struct xfs_mount *, xfs_agnumber_t); 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun extern void xfs_log_sb(struct xfs_trans *tp); 26*4882a593Smuzhiyun extern int xfs_sync_sb(struct xfs_mount *mp, bool wait); 27*4882a593Smuzhiyun extern int xfs_sync_sb_buf(struct xfs_mount *mp); 28*4882a593Smuzhiyun extern void xfs_sb_mount_common(struct xfs_mount *mp, struct xfs_sb *sbp); 29*4882a593Smuzhiyun extern void xfs_sb_from_disk(struct xfs_sb *to, struct xfs_dsb *from); 30*4882a593Smuzhiyun extern void xfs_sb_to_disk(struct xfs_dsb *to, struct xfs_sb *from); 31*4882a593Smuzhiyun extern void xfs_sb_quota_from_disk(struct xfs_sb *sbp); 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun extern int xfs_update_secondary_sbs(struct xfs_mount *mp); 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #define XFS_FS_GEOM_MAX_STRUCT_VER (4) 36*4882a593Smuzhiyun extern void xfs_fs_geometry(struct xfs_sb *sbp, struct xfs_fsop_geom *geo, 37*4882a593Smuzhiyun int struct_version); 38*4882a593Smuzhiyun extern int xfs_sb_read_secondary(struct xfs_mount *mp, 39*4882a593Smuzhiyun struct xfs_trans *tp, xfs_agnumber_t agno, 40*4882a593Smuzhiyun struct xfs_buf **bpp); 41*4882a593Smuzhiyun extern int xfs_sb_get_secondary(struct xfs_mount *mp, 42*4882a593Smuzhiyun struct xfs_trans *tp, xfs_agnumber_t agno, 43*4882a593Smuzhiyun struct xfs_buf **bpp); 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun #endif /* __XFS_SB_H__ */ 46