Lines Matching refs:sbp
98 struct xfs_sb *sbp) in xfs_validate_sb_read() argument
100 if (XFS_SB_VERSION_NUM(sbp) != XFS_SB_VERSION_5) in xfs_validate_sb_read()
107 if (xfs_sb_has_compat_feature(sbp, XFS_SB_FEAT_COMPAT_UNKNOWN)) { in xfs_validate_sb_read()
110 (sbp->sb_features_compat & XFS_SB_FEAT_COMPAT_UNKNOWN)); in xfs_validate_sb_read()
115 if (xfs_sb_has_ro_compat_feature(sbp, XFS_SB_FEAT_RO_COMPAT_UNKNOWN)) { in xfs_validate_sb_read()
118 (sbp->sb_features_ro_compat & in xfs_validate_sb_read()
129 if (xfs_sb_has_incompat_feature(sbp, XFS_SB_FEAT_INCOMPAT_UNKNOWN)) { in xfs_validate_sb_read()
132 (sbp->sb_features_incompat & in xfs_validate_sb_read()
147 struct xfs_sb *sbp) in xfs_validate_sb_write() argument
159 if (XFS_BUF_ADDR(bp) == XFS_SB_DADDR && !sbp->sb_inprogress && in xfs_validate_sb_write()
160 (sbp->sb_fdblocks > sbp->sb_dblocks || in xfs_validate_sb_write()
161 !xfs_verify_icount(mp, sbp->sb_icount) || in xfs_validate_sb_write()
162 sbp->sb_ifree > sbp->sb_icount)) { in xfs_validate_sb_write()
167 if (XFS_SB_VERSION_NUM(sbp) != XFS_SB_VERSION_5) in xfs_validate_sb_write()
175 if (xfs_sb_has_compat_feature(sbp, XFS_SB_FEAT_COMPAT_UNKNOWN)) { in xfs_validate_sb_write()
178 (sbp->sb_features_compat & XFS_SB_FEAT_COMPAT_UNKNOWN)); in xfs_validate_sb_write()
182 if (xfs_sb_has_ro_compat_feature(sbp, XFS_SB_FEAT_RO_COMPAT_UNKNOWN)) { in xfs_validate_sb_write()
185 (sbp->sb_features_ro_compat & in xfs_validate_sb_write()
189 if (xfs_sb_has_incompat_feature(sbp, XFS_SB_FEAT_INCOMPAT_UNKNOWN)) { in xfs_validate_sb_write()
192 (sbp->sb_features_incompat & in xfs_validate_sb_write()
196 if (xfs_sb_has_incompat_log_feature(sbp, in xfs_validate_sb_write()
200 (sbp->sb_features_log_incompat & in xfs_validate_sb_write()
210 if (!xfs_log_check_lsn(mp, sbp->sb_lsn)) in xfs_validate_sb_write()
221 struct xfs_sb *sbp) in xfs_validate_sb_common() argument
232 if (!xfs_sb_good_version(sbp)) { in xfs_validate_sb_common()
237 if (xfs_sb_version_has_pquotino(sbp)) { in xfs_validate_sb_common()
238 if (sbp->sb_qflags & (XFS_OQUOTA_ENFD | XFS_OQUOTA_CHKD)) { in xfs_validate_sb_common()
243 } else if (sbp->sb_qflags & (XFS_PQUOTA_ENFD | XFS_GQUOTA_ENFD | in xfs_validate_sb_common()
255 if (xfs_sb_version_hassparseinodes(sbp)) { in xfs_validate_sb_common()
258 align = XFS_INODES_PER_CHUNK * sbp->sb_inodesize in xfs_validate_sb_common()
259 >> sbp->sb_blocklog; in xfs_validate_sb_common()
260 if (sbp->sb_inoalignmt != align) { in xfs_validate_sb_common()
263 sbp->sb_inoalignmt, align); in xfs_validate_sb_common()
269 sbp->sb_logstart == 0 && mp->m_logdev_targp == mp->m_ddev_targp)) { in xfs_validate_sb_common()
277 sbp->sb_logstart != 0 && mp->m_logdev_targp != mp->m_ddev_targp)) { in xfs_validate_sb_common()
285 if (sbp->sb_agblocks) { in xfs_validate_sb_common()
286 agcount = div_u64_rem(sbp->sb_dblocks, sbp->sb_agblocks, &rem); in xfs_validate_sb_common()
296 sbp->sb_agcount <= 0 || in xfs_validate_sb_common()
297 sbp->sb_sectsize < XFS_MIN_SECTORSIZE || in xfs_validate_sb_common()
298 sbp->sb_sectsize > XFS_MAX_SECTORSIZE || in xfs_validate_sb_common()
299 sbp->sb_sectlog < XFS_MIN_SECTORSIZE_LOG || in xfs_validate_sb_common()
300 sbp->sb_sectlog > XFS_MAX_SECTORSIZE_LOG || in xfs_validate_sb_common()
301 sbp->sb_sectsize != (1 << sbp->sb_sectlog) || in xfs_validate_sb_common()
302 sbp->sb_blocksize < XFS_MIN_BLOCKSIZE || in xfs_validate_sb_common()
303 sbp->sb_blocksize > XFS_MAX_BLOCKSIZE || in xfs_validate_sb_common()
304 sbp->sb_blocklog < XFS_MIN_BLOCKSIZE_LOG || in xfs_validate_sb_common()
305 sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG || in xfs_validate_sb_common()
306 sbp->sb_blocksize != (1 << sbp->sb_blocklog) || in xfs_validate_sb_common()
307 sbp->sb_dirblklog + sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG || in xfs_validate_sb_common()
308 sbp->sb_inodesize < XFS_DINODE_MIN_SIZE || in xfs_validate_sb_common()
309 sbp->sb_inodesize > XFS_DINODE_MAX_SIZE || in xfs_validate_sb_common()
310 sbp->sb_inodelog < XFS_DINODE_MIN_LOG || in xfs_validate_sb_common()
311 sbp->sb_inodelog > XFS_DINODE_MAX_LOG || in xfs_validate_sb_common()
312 sbp->sb_inodesize != (1 << sbp->sb_inodelog) || in xfs_validate_sb_common()
313 sbp->sb_logsunit > XLOG_MAX_RECORD_BSIZE || in xfs_validate_sb_common()
314 sbp->sb_inopblock != howmany(sbp->sb_blocksize,sbp->sb_inodesize) || in xfs_validate_sb_common()
315 XFS_FSB_TO_B(mp, sbp->sb_agblocks) < XFS_MIN_AG_BYTES || in xfs_validate_sb_common()
316 XFS_FSB_TO_B(mp, sbp->sb_agblocks) > XFS_MAX_AG_BYTES || in xfs_validate_sb_common()
317 sbp->sb_agblklog != xfs_highbit32(sbp->sb_agblocks - 1) + 1 || in xfs_validate_sb_common()
318 agcount == 0 || agcount != sbp->sb_agcount || in xfs_validate_sb_common()
319 (sbp->sb_blocklog - sbp->sb_inodelog != sbp->sb_inopblog) || in xfs_validate_sb_common()
320 (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE) || in xfs_validate_sb_common()
321 (sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE) || in xfs_validate_sb_common()
322 (sbp->sb_imax_pct > 100 /* zero sb_imax_pct is valid */) || in xfs_validate_sb_common()
323 sbp->sb_dblocks == 0 || in xfs_validate_sb_common()
324 sbp->sb_dblocks > XFS_MAX_DBLOCKS(sbp) || in xfs_validate_sb_common()
325 sbp->sb_dblocks < XFS_MIN_DBLOCKS(sbp) || in xfs_validate_sb_common()
326 sbp->sb_shared_vn != 0)) { in xfs_validate_sb_common()
332 if (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE || in xfs_validate_sb_common()
333 sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE) { in xfs_validate_sb_common()
339 if (sbp->sb_rblocks == 0) { in xfs_validate_sb_common()
340 if (sbp->sb_rextents != 0 || sbp->sb_rbmblocks != 0 || in xfs_validate_sb_common()
341 sbp->sb_rextslog != 0 || sbp->sb_frextents != 0) { in xfs_validate_sb_common()
350 rexts = div_u64(sbp->sb_rblocks, sbp->sb_rextsize); in xfs_validate_sb_common()
351 rbmblocks = howmany_64(sbp->sb_rextents, in xfs_validate_sb_common()
352 NBBY * sbp->sb_blocksize); in xfs_validate_sb_common()
354 if (sbp->sb_rextents != rexts || in xfs_validate_sb_common()
355 sbp->sb_rextslog != xfs_highbit32(sbp->sb_rextents) || in xfs_validate_sb_common()
356 sbp->sb_rbmblocks != rbmblocks) { in xfs_validate_sb_common()
363 if (sbp->sb_unit) { in xfs_validate_sb_common()
364 if (!xfs_sb_version_hasdalign(sbp) || in xfs_validate_sb_common()
365 sbp->sb_unit > sbp->sb_width || in xfs_validate_sb_common()
366 (sbp->sb_width % sbp->sb_unit) != 0) { in xfs_validate_sb_common()
370 } else if (xfs_sb_version_hasdalign(sbp)) { in xfs_validate_sb_common()
373 } else if (sbp->sb_width) { in xfs_validate_sb_common()
380 sbp->sb_blocksize < XFS_MIN_CRC_BLOCKSIZE) { in xfs_validate_sb_common()
388 if (unlikely(sbp->sb_blocksize > PAGE_SIZE)) { in xfs_validate_sb_common()
392 sbp->sb_blocksize, PAGE_SIZE); in xfs_validate_sb_common()
399 switch (sbp->sb_inodesize) { in xfs_validate_sb_common()
407 sbp->sb_inodesize); in xfs_validate_sb_common()
411 if (xfs_sb_validate_fsb_count(sbp, sbp->sb_dblocks) || in xfs_validate_sb_common()
412 xfs_sb_validate_fsb_count(sbp, sbp->sb_rblocks)) { in xfs_validate_sb_common()
423 if (XFS_BUF_ADDR(bp) == XFS_SB_DADDR && sbp->sb_inprogress) { in xfs_validate_sb_common()
431 xfs_sb_quota_from_disk(struct xfs_sb *sbp) in xfs_sb_quota_from_disk() argument
444 if (sbp->sb_uquotino == 0) in xfs_sb_quota_from_disk()
445 sbp->sb_uquotino = NULLFSINO; in xfs_sb_quota_from_disk()
446 if (sbp->sb_gquotino == 0) in xfs_sb_quota_from_disk()
447 sbp->sb_gquotino = NULLFSINO; in xfs_sb_quota_from_disk()
448 if (sbp->sb_pquotino == 0) in xfs_sb_quota_from_disk()
449 sbp->sb_pquotino = NULLFSINO; in xfs_sb_quota_from_disk()
455 if (xfs_sb_version_has_pquotino(sbp)) in xfs_sb_quota_from_disk()
458 if (sbp->sb_qflags & XFS_OQUOTA_ENFD) in xfs_sb_quota_from_disk()
459 sbp->sb_qflags |= (sbp->sb_qflags & XFS_PQUOTA_ACCT) ? in xfs_sb_quota_from_disk()
461 if (sbp->sb_qflags & XFS_OQUOTA_CHKD) in xfs_sb_quota_from_disk()
462 sbp->sb_qflags |= (sbp->sb_qflags & XFS_PQUOTA_ACCT) ? in xfs_sb_quota_from_disk()
464 sbp->sb_qflags &= ~(XFS_OQUOTA_ENFD | XFS_OQUOTA_CHKD); in xfs_sb_quota_from_disk()
466 if (sbp->sb_qflags & XFS_PQUOTA_ACCT && in xfs_sb_quota_from_disk()
467 sbp->sb_gquotino != NULLFSINO) { in xfs_sb_quota_from_disk()
477 sbp->sb_pquotino = sbp->sb_gquotino; in xfs_sb_quota_from_disk()
478 sbp->sb_gquotino = NULLFSINO; in xfs_sb_quota_from_disk()
837 struct xfs_sb *sbp) in xfs_sb_mount_common() argument
841 mp->m_blkbit_log = sbp->sb_blocklog + XFS_NBBYLOG; in xfs_sb_mount_common()
842 mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT; in xfs_sb_mount_common()
843 mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; in xfs_sb_mount_common()
844 mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; in xfs_sb_mount_common()
845 mp->m_blockmask = sbp->sb_blocksize - 1; in xfs_sb_mount_common()
846 mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG; in xfs_sb_mount_common()
849 mp->m_alloc_mxr[0] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 1); in xfs_sb_mount_common()
850 mp->m_alloc_mxr[1] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 0); in xfs_sb_mount_common()
854 mp->m_bmap_dmxr[0] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 1); in xfs_sb_mount_common()
855 mp->m_bmap_dmxr[1] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 0); in xfs_sb_mount_common()
859 mp->m_rmap_mxr[0] = xfs_rmapbt_maxrecs(sbp->sb_blocksize, 1); in xfs_sb_mount_common()
860 mp->m_rmap_mxr[1] = xfs_rmapbt_maxrecs(sbp->sb_blocksize, 0); in xfs_sb_mount_common()
864 mp->m_refc_mxr[0] = xfs_refcountbt_maxrecs(sbp->sb_blocksize, true); in xfs_sb_mount_common()
865 mp->m_refc_mxr[1] = xfs_refcountbt_maxrecs(sbp->sb_blocksize, false); in xfs_sb_mount_common()
889 xfs_sb_t *sbp = &mp->m_sb; in xfs_initialize_perag_data() local
927 if (fdblocks > sbp->sb_dblocks || ifree > ialloc) { in xfs_initialize_perag_data()
935 sbp->sb_ifree = ifree; in xfs_initialize_perag_data()
936 sbp->sb_icount = ialloc; in xfs_initialize_perag_data()
937 sbp->sb_fdblocks = fdblocks; in xfs_initialize_perag_data()
1115 struct xfs_sb *sbp, in xfs_fs_geometry() argument
1121 geo->blocksize = sbp->sb_blocksize; in xfs_fs_geometry()
1122 geo->rtextsize = sbp->sb_rextsize; in xfs_fs_geometry()
1123 geo->agblocks = sbp->sb_agblocks; in xfs_fs_geometry()
1124 geo->agcount = sbp->sb_agcount; in xfs_fs_geometry()
1125 geo->logblocks = sbp->sb_logblocks; in xfs_fs_geometry()
1126 geo->sectsize = sbp->sb_sectsize; in xfs_fs_geometry()
1127 geo->inodesize = sbp->sb_inodesize; in xfs_fs_geometry()
1128 geo->imaxpct = sbp->sb_imax_pct; in xfs_fs_geometry()
1129 geo->datablocks = sbp->sb_dblocks; in xfs_fs_geometry()
1130 geo->rtblocks = sbp->sb_rblocks; in xfs_fs_geometry()
1131 geo->rtextents = sbp->sb_rextents; in xfs_fs_geometry()
1132 geo->logstart = sbp->sb_logstart; in xfs_fs_geometry()
1133 BUILD_BUG_ON(sizeof(geo->uuid) != sizeof(sbp->sb_uuid)); in xfs_fs_geometry()
1134 memcpy(geo->uuid, &sbp->sb_uuid, sizeof(sbp->sb_uuid)); in xfs_fs_geometry()
1139 geo->sunit = sbp->sb_unit; in xfs_fs_geometry()
1140 geo->swidth = sbp->sb_width; in xfs_fs_geometry()
1149 if (xfs_sb_version_hasattr(sbp)) in xfs_fs_geometry()
1151 if (xfs_sb_version_hasquota(sbp)) in xfs_fs_geometry()
1153 if (xfs_sb_version_hasalign(sbp)) in xfs_fs_geometry()
1155 if (xfs_sb_version_hasdalign(sbp)) in xfs_fs_geometry()
1157 if (xfs_sb_version_hassector(sbp)) in xfs_fs_geometry()
1159 if (xfs_sb_version_hasasciici(sbp)) in xfs_fs_geometry()
1161 if (xfs_sb_version_haslazysbcount(sbp)) in xfs_fs_geometry()
1163 if (xfs_sb_version_hasattr2(sbp)) in xfs_fs_geometry()
1165 if (xfs_sb_version_hasprojid32bit(sbp)) in xfs_fs_geometry()
1167 if (xfs_sb_version_hascrc(sbp)) in xfs_fs_geometry()
1169 if (xfs_sb_version_hasftype(sbp)) in xfs_fs_geometry()
1171 if (xfs_sb_version_hasfinobt(sbp)) in xfs_fs_geometry()
1173 if (xfs_sb_version_hassparseinodes(sbp)) in xfs_fs_geometry()
1175 if (xfs_sb_version_hasrmapbt(sbp)) in xfs_fs_geometry()
1177 if (xfs_sb_version_hasreflink(sbp)) in xfs_fs_geometry()
1179 if (xfs_sb_version_hasbigtime(sbp)) in xfs_fs_geometry()
1181 if (xfs_sb_version_hassector(sbp)) in xfs_fs_geometry()
1182 geo->logsectsize = sbp->sb_logsectsize; in xfs_fs_geometry()
1185 geo->rtsectsize = sbp->sb_blocksize; in xfs_fs_geometry()
1186 geo->dirblocksize = xfs_dir2_dirblock_bytes(sbp); in xfs_fs_geometry()
1191 if (xfs_sb_version_haslogv2(sbp)) in xfs_fs_geometry()
1194 geo->logsunit = sbp->sb_logsunit; in xfs_fs_geometry()