Lines Matching refs:sbp

40 	struct xfs_sb	*sbp)
43 if (sbp->sb_versionnum & ~XFS_SB_VERSION_OKBITS)
50 if (sbp->sb_features2 & ~(XFS_SB_VERSION2_OKBITS |
68 if ((sbp->sb_versionnum & V5_VERS_FLAGS) != V5_VERS_FLAGS)
70 if ((sbp->sb_features2 & V5_FEAT_FLAGS) != V5_FEAT_FLAGS)
81 struct xfs_sb *sbp)
88 if (xfs_sb_is_v5(sbp))
89 return xfs_sb_validate_v5_features(sbp);
92 if (XFS_SB_VERSION_NUM(sbp) != XFS_SB_VERSION_4)
96 if ((sbp->sb_versionnum & ~XFS_SB_VERSION_OKBITS) ||
97 ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) &&
98 (sbp->sb_features2 & ~XFS_SB_VERSION2_OKBITS)))
102 if (!(sbp->sb_versionnum & XFS_SB_VERSION_DIRV2BIT))
104 if (!(sbp->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT))
113 struct xfs_sb *sbp)
118 if (sbp->sb_rblocks > 0)
120 if (sbp->sb_versionnum & XFS_SB_VERSION_NLINKBIT)
122 if (sbp->sb_versionnum & XFS_SB_VERSION_ATTRBIT)
124 if (sbp->sb_versionnum & XFS_SB_VERSION_QUOTABIT)
126 if (sbp->sb_versionnum & XFS_SB_VERSION_ALIGNBIT)
128 if (sbp->sb_versionnum & XFS_SB_VERSION_LOGV2BIT)
130 if (sbp->sb_versionnum & XFS_SB_VERSION_DALIGNBIT)
132 if (sbp->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT)
134 if (sbp->sb_versionnum & XFS_SB_VERSION_SECTORBIT)
136 if (sbp->sb_versionnum & XFS_SB_VERSION_BORGBIT)
138 if (sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) {
139 if (sbp->sb_features2 & XFS_SB_VERSION2_LAZYSBCOUNTBIT)
141 if (sbp->sb_features2 & XFS_SB_VERSION2_ATTR2BIT)
143 if (sbp->sb_features2 & XFS_SB_VERSION2_PROJID32BIT)
145 if (sbp->sb_features2 & XFS_SB_VERSION2_FTYPE)
149 if (!xfs_sb_is_v5(sbp))
158 if (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_FINOBT)
160 if (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_RMAPBT)
162 if (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_REFLINK)
164 if (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_INOBTCNT)
166 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_FTYPE)
168 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_SPINODES)
170 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_META_UUID)
172 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_BIGTIME)
174 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR)
176 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NREXT64)
186 struct xfs_sb *sbp)
188 if (!xfs_sb_is_v5(sbp))
195 if (xfs_sb_has_compat_feature(sbp, XFS_SB_FEAT_COMPAT_UNKNOWN)) {
198 (sbp->sb_features_compat & XFS_SB_FEAT_COMPAT_UNKNOWN));
203 if (xfs_sb_has_ro_compat_feature(sbp, XFS_SB_FEAT_RO_COMPAT_UNKNOWN)) {
206 (sbp->sb_features_ro_compat &
217 if (xfs_sb_has_incompat_feature(sbp, XFS_SB_FEAT_INCOMPAT_UNKNOWN)) {
220 (sbp->sb_features_incompat &
235 struct xfs_sb *sbp)
247 if (xfs_buf_daddr(bp) == XFS_SB_DADDR && !sbp->sb_inprogress &&
248 (sbp->sb_fdblocks > sbp->sb_dblocks ||
249 !xfs_verify_icount(mp, sbp->sb_icount) ||
250 sbp->sb_ifree > sbp->sb_icount)) {
255 if (!xfs_sb_is_v5(sbp))
263 if (xfs_sb_has_compat_feature(sbp, XFS_SB_FEAT_COMPAT_UNKNOWN)) {
266 (sbp->sb_features_compat & XFS_SB_FEAT_COMPAT_UNKNOWN));
271 xfs_sb_has_ro_compat_feature(sbp, XFS_SB_FEAT_RO_COMPAT_UNKNOWN)) {
274 (sbp->sb_features_ro_compat &
278 if (xfs_sb_has_incompat_feature(sbp, XFS_SB_FEAT_INCOMPAT_UNKNOWN)) {
281 (sbp->sb_features_incompat &
285 if (xfs_sb_has_incompat_log_feature(sbp,
289 (sbp->sb_features_log_incompat &
299 if (!xfs_log_check_lsn(mp, sbp->sb_lsn))
310 struct xfs_sb *sbp)
324 if (!xfs_sb_good_version(sbp)) {
333 if (xfs_sb_is_v5(sbp)) {
334 if (sbp->sb_blocksize < XFS_MIN_CRC_BLOCKSIZE) {
337 sbp->sb_blocksize, XFS_MIN_CRC_BLOCKSIZE);
342 if (sbp->sb_qflags & (XFS_OQUOTA_ENFD | XFS_OQUOTA_CHKD)) {
353 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_SPINODES) {
356 align = XFS_INODES_PER_CHUNK * sbp->sb_inodesize
357 >> sbp->sb_blocklog;
358 if (sbp->sb_inoalignmt != align) {
361 sbp->sb_inoalignmt, align);
365 } else if (sbp->sb_qflags & (XFS_PQUOTA_ENFD | XFS_GQUOTA_ENFD |
373 sbp->sb_logstart == 0 && mp->m_logdev_targp == mp->m_ddev_targp)) {
381 sbp->sb_logstart != 0 && mp->m_logdev_targp != mp->m_ddev_targp)) {
389 if (sbp->sb_agblocks) {
390 agcount = div_u64_rem(sbp->sb_dblocks, sbp->sb_agblocks, &rem);
400 sbp->sb_agcount <= 0 ||
401 sbp->sb_sectsize < XFS_MIN_SECTORSIZE ||
402 sbp->sb_sectsize > XFS_MAX_SECTORSIZE ||
403 sbp->sb_sectlog < XFS_MIN_SECTORSIZE_LOG ||
404 sbp->sb_sectlog > XFS_MAX_SECTORSIZE_LOG ||
405 sbp->sb_sectsize != (1 << sbp->sb_sectlog) ||
406 sbp->sb_blocksize < XFS_MIN_BLOCKSIZE ||
407 sbp->sb_blocksize > XFS_MAX_BLOCKSIZE ||
408 sbp->sb_blocklog < XFS_MIN_BLOCKSIZE_LOG ||
409 sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG ||
410 sbp->sb_blocksize != (1 << sbp->sb_blocklog) ||
411 sbp->sb_dirblklog + sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG ||
412 sbp->sb_inodesize < XFS_DINODE_MIN_SIZE ||
413 sbp->sb_inodesize > XFS_DINODE_MAX_SIZE ||
414 sbp->sb_inodelog < XFS_DINODE_MIN_LOG ||
415 sbp->sb_inodelog > XFS_DINODE_MAX_LOG ||
416 sbp->sb_inodesize != (1 << sbp->sb_inodelog) ||
417 sbp->sb_inopblock != howmany(sbp->sb_blocksize,sbp->sb_inodesize) ||
418 XFS_FSB_TO_B(mp, sbp->sb_agblocks) < XFS_MIN_AG_BYTES ||
419 XFS_FSB_TO_B(mp, sbp->sb_agblocks) > XFS_MAX_AG_BYTES ||
420 sbp->sb_agblklog != xfs_highbit32(sbp->sb_agblocks - 1) + 1 ||
421 agcount == 0 || agcount != sbp->sb_agcount ||
422 (sbp->sb_blocklog - sbp->sb_inodelog != sbp->sb_inopblog) ||
423 (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE) ||
424 (sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE) ||
425 (sbp->sb_imax_pct > 100 /* zero sb_imax_pct is valid */) ||
426 sbp->sb_dblocks == 0 ||
427 sbp->sb_dblocks > XFS_MAX_DBLOCKS(sbp) ||
428 sbp->sb_dblocks < XFS_MIN_DBLOCKS(sbp) ||
429 sbp->sb_shared_vn != 0)) {
440 if (sbp->sb_logblocks > XFS_MAX_LOG_BLOCKS) {
443 sbp->sb_logblocks, XFS_MAX_LOG_BLOCKS);
447 if (XFS_FSB_TO_B(mp, sbp->sb_logblocks) > XFS_MAX_LOG_BYTES) {
450 XFS_FSB_TO_B(mp, sbp->sb_logblocks),
460 if (sbp->sb_versionnum & XFS_SB_VERSION_SECTORBIT) {
461 if (sbp->sb_logsectsize != (1U << sbp->sb_logsectlog)) {
464 sbp->sb_logsectsize, 1U << sbp->sb_logsectlog);
467 } else if (sbp->sb_logsectsize || sbp->sb_logsectlog) {
470 sbp->sb_logsectsize, sbp->sb_logsectlog);
474 if (sbp->sb_logsunit > 1) {
475 if (sbp->sb_logsunit % sbp->sb_blocksize) {
478 sbp->sb_logsunit);
481 if (sbp->sb_logsunit > XLOG_MAX_RECORD_BSIZE) {
484 sbp->sb_logsunit, XLOG_MAX_RECORD_BSIZE);
490 if (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE ||
491 sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE) {
497 if (sbp->sb_rblocks == 0) {
498 if (sbp->sb_rextents != 0 || sbp->sb_rbmblocks != 0 ||
499 sbp->sb_rextslog != 0 || sbp->sb_frextents != 0) {
508 rexts = div_u64(sbp->sb_rblocks, sbp->sb_rextsize);
509 rbmblocks = howmany_64(sbp->sb_rextents,
510 NBBY * sbp->sb_blocksize);
513 sbp->sb_rextents != rexts ||
514 sbp->sb_rextslog != xfs_compute_rextslog(rexts) ||
515 sbp->sb_rbmblocks != rbmblocks) {
526 has_dalign = sbp->sb_versionnum & XFS_SB_VERSION_DALIGNBIT;
527 if (!!sbp->sb_unit ^ has_dalign) {
532 if (!xfs_validate_stripe_geometry(mp, XFS_FSB_TO_B(mp, sbp->sb_unit),
533 XFS_FSB_TO_B(mp, sbp->sb_width), 0,
540 switch (sbp->sb_inodesize) {
548 sbp->sb_inodesize);
556 xfs_sb_quota_from_disk(struct xfs_sb *sbp)
569 if (sbp->sb_uquotino == 0)
570 sbp->sb_uquotino = NULLFSINO;
571 if (sbp->sb_gquotino == 0)
572 sbp->sb_gquotino = NULLFSINO;
573 if (sbp->sb_pquotino == 0)
574 sbp->sb_pquotino = NULLFSINO;
580 if (xfs_sb_is_v5(sbp))
583 if (sbp->sb_qflags & XFS_OQUOTA_ENFD)
584 sbp->sb_qflags |= (sbp->sb_qflags & XFS_PQUOTA_ACCT) ?
586 if (sbp->sb_qflags & XFS_OQUOTA_CHKD)
587 sbp->sb_qflags |= (sbp->sb_qflags & XFS_PQUOTA_ACCT) ?
589 sbp->sb_qflags &= ~(XFS_OQUOTA_ENFD | XFS_OQUOTA_CHKD);
591 if (sbp->sb_qflags & XFS_PQUOTA_ACCT &&
592 sbp->sb_gquotino != NULLFSINO) {
602 sbp->sb_pquotino = sbp->sb_gquotino;
603 sbp->sb_gquotino = NULLFSINO;
969 struct xfs_sb *sbp)
974 mp->m_blkbit_log = sbp->sb_blocklog + XFS_NBBYLOG;
975 mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT;
976 mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT;
977 mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1;
978 mp->m_blockmask = sbp->sb_blocksize - 1;
979 mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG;
981 mp->m_rtxblklog = log2_if_power2(sbp->sb_rextsize);
982 mp->m_rtxblkmask = mask64_if_power2(sbp->sb_rextsize);
984 mp->m_alloc_mxr[0] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 1);
985 mp->m_alloc_mxr[1] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 0);
989 mp->m_bmap_dmxr[0] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 1);
990 mp->m_bmap_dmxr[1] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 0);
994 mp->m_rmap_mxr[0] = xfs_rmapbt_maxrecs(sbp->sb_blocksize, 1);
995 mp->m_rmap_mxr[1] = xfs_rmapbt_maxrecs(sbp->sb_blocksize, 0);
999 mp->m_refc_mxr[0] = xfs_refcountbt_maxrecs(sbp->sb_blocksize, true);
1000 mp->m_refc_mxr[1] = xfs_refcountbt_maxrecs(sbp->sb_blocksize, false);
1190 struct xfs_sb *sbp = &mp->m_sb;
1194 geo->blocksize = sbp->sb_blocksize;
1195 geo->rtextsize = sbp->sb_rextsize;
1196 geo->agblocks = sbp->sb_agblocks;
1197 geo->agcount = sbp->sb_agcount;
1198 geo->logblocks = sbp->sb_logblocks;
1199 geo->sectsize = sbp->sb_sectsize;
1200 geo->inodesize = sbp->sb_inodesize;
1201 geo->imaxpct = sbp->sb_imax_pct;
1202 geo->datablocks = sbp->sb_dblocks;
1203 geo->rtblocks = sbp->sb_rblocks;
1204 geo->rtextents = sbp->sb_rextents;
1205 geo->logstart = sbp->sb_logstart;
1206 BUILD_BUG_ON(sizeof(geo->uuid) != sizeof(sbp->sb_uuid));
1207 memcpy(geo->uuid, &sbp->sb_uuid, sizeof(sbp->sb_uuid));
1212 geo->sunit = sbp->sb_unit;
1213 geo->swidth = sbp->sb_width;
1256 geo->logsectsize = sbp->sb_logsectsize;
1262 geo->rtsectsize = sbp->sb_blocksize;
1263 geo->dirblocksize = xfs_dir2_dirblock_bytes(sbp);
1271 geo->logsunit = sbp->sb_logsunit;