Lines Matching refs:sbp

38 	struct xfs_sb	*sbp)  in xfs_sb_good_version()  argument
41 if (xfs_sb_is_v5(sbp)) in xfs_sb_good_version()
45 if (XFS_SB_VERSION_NUM(sbp) < XFS_SB_VERSION_4) in xfs_sb_good_version()
49 if (!(sbp->sb_versionnum & XFS_SB_VERSION_DIRV2BIT)) in xfs_sb_good_version()
51 if (!(sbp->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT)) in xfs_sb_good_version()
55 if ((sbp->sb_versionnum & ~XFS_SB_VERSION_OKBITS) || in xfs_sb_good_version()
56 ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && in xfs_sb_good_version()
57 (sbp->sb_features2 & ~XFS_SB_VERSION2_OKBITS))) in xfs_sb_good_version()
66 struct xfs_sb *sbp) in xfs_sb_version_to_features() argument
71 if (sbp->sb_rblocks > 0) in xfs_sb_version_to_features()
73 if (sbp->sb_versionnum & XFS_SB_VERSION_ATTRBIT) in xfs_sb_version_to_features()
75 if (sbp->sb_versionnum & XFS_SB_VERSION_QUOTABIT) in xfs_sb_version_to_features()
77 if (sbp->sb_versionnum & XFS_SB_VERSION_ALIGNBIT) in xfs_sb_version_to_features()
79 if (sbp->sb_versionnum & XFS_SB_VERSION_LOGV2BIT) in xfs_sb_version_to_features()
81 if (sbp->sb_versionnum & XFS_SB_VERSION_DALIGNBIT) in xfs_sb_version_to_features()
83 if (sbp->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT) in xfs_sb_version_to_features()
85 if (sbp->sb_versionnum & XFS_SB_VERSION_SECTORBIT) in xfs_sb_version_to_features()
87 if (sbp->sb_versionnum & XFS_SB_VERSION_BORGBIT) in xfs_sb_version_to_features()
89 if (sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) { in xfs_sb_version_to_features()
90 if (sbp->sb_features2 & XFS_SB_VERSION2_LAZYSBCOUNTBIT) in xfs_sb_version_to_features()
92 if (sbp->sb_features2 & XFS_SB_VERSION2_ATTR2BIT) in xfs_sb_version_to_features()
94 if (sbp->sb_features2 & XFS_SB_VERSION2_PROJID32BIT) in xfs_sb_version_to_features()
96 if (sbp->sb_features2 & XFS_SB_VERSION2_FTYPE) in xfs_sb_version_to_features()
100 if (!xfs_sb_is_v5(sbp)) in xfs_sb_version_to_features()
109 if (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_FINOBT) in xfs_sb_version_to_features()
111 if (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_RMAPBT) in xfs_sb_version_to_features()
113 if (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_REFLINK) in xfs_sb_version_to_features()
115 if (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_INOBTCNT) in xfs_sb_version_to_features()
117 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_FTYPE) in xfs_sb_version_to_features()
119 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_SPINODES) in xfs_sb_version_to_features()
121 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_META_UUID) in xfs_sb_version_to_features()
123 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_BIGTIME) in xfs_sb_version_to_features()
125 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR) in xfs_sb_version_to_features()
134 struct xfs_sb *sbp) in xfs_validate_sb_read() argument
136 if (!xfs_sb_is_v5(sbp)) in xfs_validate_sb_read()
143 if (xfs_sb_has_compat_feature(sbp, XFS_SB_FEAT_COMPAT_UNKNOWN)) { in xfs_validate_sb_read()
146 (sbp->sb_features_compat & XFS_SB_FEAT_COMPAT_UNKNOWN)); in xfs_validate_sb_read()
151 if (xfs_sb_has_ro_compat_feature(sbp, XFS_SB_FEAT_RO_COMPAT_UNKNOWN)) { in xfs_validate_sb_read()
154 (sbp->sb_features_ro_compat & in xfs_validate_sb_read()
165 if (xfs_sb_has_incompat_feature(sbp, XFS_SB_FEAT_INCOMPAT_UNKNOWN)) { in xfs_validate_sb_read()
168 (sbp->sb_features_incompat & in xfs_validate_sb_read()
183 struct xfs_sb *sbp) in xfs_validate_sb_write() argument
195 if (xfs_buf_daddr(bp) == XFS_SB_DADDR && !sbp->sb_inprogress && in xfs_validate_sb_write()
196 (sbp->sb_fdblocks > sbp->sb_dblocks || in xfs_validate_sb_write()
197 !xfs_verify_icount(mp, sbp->sb_icount) || in xfs_validate_sb_write()
198 sbp->sb_ifree > sbp->sb_icount)) { in xfs_validate_sb_write()
203 if (!xfs_sb_is_v5(sbp)) in xfs_validate_sb_write()
211 if (xfs_sb_has_compat_feature(sbp, XFS_SB_FEAT_COMPAT_UNKNOWN)) { in xfs_validate_sb_write()
214 (sbp->sb_features_compat & XFS_SB_FEAT_COMPAT_UNKNOWN)); in xfs_validate_sb_write()
218 if (xfs_sb_has_ro_compat_feature(sbp, XFS_SB_FEAT_RO_COMPAT_UNKNOWN)) { in xfs_validate_sb_write()
221 (sbp->sb_features_ro_compat & in xfs_validate_sb_write()
225 if (xfs_sb_has_incompat_feature(sbp, XFS_SB_FEAT_INCOMPAT_UNKNOWN)) { in xfs_validate_sb_write()
228 (sbp->sb_features_incompat & in xfs_validate_sb_write()
232 if (xfs_sb_has_incompat_log_feature(sbp, in xfs_validate_sb_write()
236 (sbp->sb_features_log_incompat & in xfs_validate_sb_write()
246 if (!xfs_log_check_lsn(mp, sbp->sb_lsn)) in xfs_validate_sb_write()
257 struct xfs_sb *sbp) in xfs_validate_sb_common() argument
269 if (!xfs_sb_good_version(sbp)) { in xfs_validate_sb_common()
277 if (xfs_sb_is_v5(sbp)) { in xfs_validate_sb_common()
278 if (sbp->sb_blocksize < XFS_MIN_CRC_BLOCKSIZE) { in xfs_validate_sb_common()
281 sbp->sb_blocksize, XFS_MIN_CRC_BLOCKSIZE); in xfs_validate_sb_common()
286 if (sbp->sb_qflags & (XFS_OQUOTA_ENFD | XFS_OQUOTA_CHKD)) { in xfs_validate_sb_common()
297 if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_SPINODES) { in xfs_validate_sb_common()
300 align = XFS_INODES_PER_CHUNK * sbp->sb_inodesize in xfs_validate_sb_common()
301 >> sbp->sb_blocklog; in xfs_validate_sb_common()
302 if (sbp->sb_inoalignmt != align) { in xfs_validate_sb_common()
305 sbp->sb_inoalignmt, align); in xfs_validate_sb_common()
309 } else if (sbp->sb_qflags & (XFS_PQUOTA_ENFD | XFS_GQUOTA_ENFD | in xfs_validate_sb_common()
317 sbp->sb_logstart == 0 && mp->m_logdev_targp == mp->m_ddev_targp)) { in xfs_validate_sb_common()
325 sbp->sb_logstart != 0 && mp->m_logdev_targp != mp->m_ddev_targp)) { in xfs_validate_sb_common()
333 if (sbp->sb_agblocks) { in xfs_validate_sb_common()
334 agcount = div_u64_rem(sbp->sb_dblocks, sbp->sb_agblocks, &rem); in xfs_validate_sb_common()
344 sbp->sb_agcount <= 0 || in xfs_validate_sb_common()
345 sbp->sb_sectsize < XFS_MIN_SECTORSIZE || in xfs_validate_sb_common()
346 sbp->sb_sectsize > XFS_MAX_SECTORSIZE || in xfs_validate_sb_common()
347 sbp->sb_sectlog < XFS_MIN_SECTORSIZE_LOG || in xfs_validate_sb_common()
348 sbp->sb_sectlog > XFS_MAX_SECTORSIZE_LOG || in xfs_validate_sb_common()
349 sbp->sb_sectsize != (1 << sbp->sb_sectlog) || in xfs_validate_sb_common()
350 sbp->sb_blocksize < XFS_MIN_BLOCKSIZE || in xfs_validate_sb_common()
351 sbp->sb_blocksize > XFS_MAX_BLOCKSIZE || in xfs_validate_sb_common()
352 sbp->sb_blocklog < XFS_MIN_BLOCKSIZE_LOG || in xfs_validate_sb_common()
353 sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG || in xfs_validate_sb_common()
354 sbp->sb_blocksize != (1 << sbp->sb_blocklog) || in xfs_validate_sb_common()
355 sbp->sb_dirblklog + sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG || in xfs_validate_sb_common()
356 sbp->sb_inodesize < XFS_DINODE_MIN_SIZE || in xfs_validate_sb_common()
357 sbp->sb_inodesize > XFS_DINODE_MAX_SIZE || in xfs_validate_sb_common()
358 sbp->sb_inodelog < XFS_DINODE_MIN_LOG || in xfs_validate_sb_common()
359 sbp->sb_inodelog > XFS_DINODE_MAX_LOG || in xfs_validate_sb_common()
360 sbp->sb_inodesize != (1 << sbp->sb_inodelog) || in xfs_validate_sb_common()
361 sbp->sb_logsunit > XLOG_MAX_RECORD_BSIZE || in xfs_validate_sb_common()
362 sbp->sb_inopblock != howmany(sbp->sb_blocksize,sbp->sb_inodesize) || in xfs_validate_sb_common()
363 XFS_FSB_TO_B(mp, sbp->sb_agblocks) < XFS_MIN_AG_BYTES || in xfs_validate_sb_common()
364 XFS_FSB_TO_B(mp, sbp->sb_agblocks) > XFS_MAX_AG_BYTES || in xfs_validate_sb_common()
365 sbp->sb_agblklog != xfs_highbit32(sbp->sb_agblocks - 1) + 1 || in xfs_validate_sb_common()
366 agcount == 0 || agcount != sbp->sb_agcount || in xfs_validate_sb_common()
367 (sbp->sb_blocklog - sbp->sb_inodelog != sbp->sb_inopblog) || in xfs_validate_sb_common()
368 (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE) || in xfs_validate_sb_common()
369 (sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE) || in xfs_validate_sb_common()
370 (sbp->sb_imax_pct > 100 /* zero sb_imax_pct is valid */) || in xfs_validate_sb_common()
371 sbp->sb_dblocks == 0 || in xfs_validate_sb_common()
372 sbp->sb_dblocks > XFS_MAX_DBLOCKS(sbp) || in xfs_validate_sb_common()
373 sbp->sb_dblocks < XFS_MIN_DBLOCKS(sbp) || in xfs_validate_sb_common()
374 sbp->sb_shared_vn != 0)) { in xfs_validate_sb_common()
380 if (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE || in xfs_validate_sb_common()
381 sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE) { in xfs_validate_sb_common()
387 if (sbp->sb_rblocks == 0) { in xfs_validate_sb_common()
388 if (sbp->sb_rextents != 0 || sbp->sb_rbmblocks != 0 || in xfs_validate_sb_common()
389 sbp->sb_rextslog != 0 || sbp->sb_frextents != 0) { in xfs_validate_sb_common()
398 rexts = div_u64(sbp->sb_rblocks, sbp->sb_rextsize); in xfs_validate_sb_common()
399 rbmblocks = howmany_64(sbp->sb_rextents, in xfs_validate_sb_common()
400 NBBY * sbp->sb_blocksize); in xfs_validate_sb_common()
402 if (sbp->sb_rextents != rexts || in xfs_validate_sb_common()
403 sbp->sb_rextslog != xfs_highbit32(sbp->sb_rextents) || in xfs_validate_sb_common()
404 sbp->sb_rbmblocks != rbmblocks) { in xfs_validate_sb_common()
415 has_dalign = sbp->sb_versionnum & XFS_SB_VERSION_DALIGNBIT; in xfs_validate_sb_common()
416 if (!!sbp->sb_unit ^ has_dalign) { in xfs_validate_sb_common()
421 if (!xfs_validate_stripe_geometry(mp, XFS_FSB_TO_B(mp, sbp->sb_unit), in xfs_validate_sb_common()
422 XFS_FSB_TO_B(mp, sbp->sb_width), 0, false)) in xfs_validate_sb_common()
428 switch (sbp->sb_inodesize) { in xfs_validate_sb_common()
436 sbp->sb_inodesize); in xfs_validate_sb_common()
444 xfs_sb_quota_from_disk(struct xfs_sb *sbp) in xfs_sb_quota_from_disk() argument
457 if (sbp->sb_uquotino == 0) in xfs_sb_quota_from_disk()
458 sbp->sb_uquotino = NULLFSINO; in xfs_sb_quota_from_disk()
459 if (sbp->sb_gquotino == 0) in xfs_sb_quota_from_disk()
460 sbp->sb_gquotino = NULLFSINO; in xfs_sb_quota_from_disk()
461 if (sbp->sb_pquotino == 0) in xfs_sb_quota_from_disk()
462 sbp->sb_pquotino = NULLFSINO; in xfs_sb_quota_from_disk()
468 if (xfs_sb_is_v5(sbp)) in xfs_sb_quota_from_disk()
471 if (sbp->sb_qflags & XFS_OQUOTA_ENFD) in xfs_sb_quota_from_disk()
472 sbp->sb_qflags |= (sbp->sb_qflags & XFS_PQUOTA_ACCT) ? in xfs_sb_quota_from_disk()
474 if (sbp->sb_qflags & XFS_OQUOTA_CHKD) in xfs_sb_quota_from_disk()
475 sbp->sb_qflags |= (sbp->sb_qflags & XFS_PQUOTA_ACCT) ? in xfs_sb_quota_from_disk()
477 sbp->sb_qflags &= ~(XFS_OQUOTA_ENFD | XFS_OQUOTA_CHKD); in xfs_sb_quota_from_disk()
479 if (sbp->sb_qflags & XFS_PQUOTA_ACCT && in xfs_sb_quota_from_disk()
480 sbp->sb_gquotino != NULLFSINO) { in xfs_sb_quota_from_disk()
490 sbp->sb_pquotino = sbp->sb_gquotino; in xfs_sb_quota_from_disk()
491 sbp->sb_gquotino = NULLFSINO; in xfs_sb_quota_from_disk()
857 struct xfs_sb *sbp) in xfs_sb_mount_common() argument
861 mp->m_blkbit_log = sbp->sb_blocklog + XFS_NBBYLOG; in xfs_sb_mount_common()
862 mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT; in xfs_sb_mount_common()
863 mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; in xfs_sb_mount_common()
864 mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; in xfs_sb_mount_common()
865 mp->m_blockmask = sbp->sb_blocksize - 1; in xfs_sb_mount_common()
866 mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG; in xfs_sb_mount_common()
869 mp->m_alloc_mxr[0] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 1); in xfs_sb_mount_common()
870 mp->m_alloc_mxr[1] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 0); in xfs_sb_mount_common()
874 mp->m_bmap_dmxr[0] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 1); in xfs_sb_mount_common()
875 mp->m_bmap_dmxr[1] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 0); in xfs_sb_mount_common()
879 mp->m_rmap_mxr[0] = xfs_rmapbt_maxrecs(sbp->sb_blocksize, 1); in xfs_sb_mount_common()
880 mp->m_rmap_mxr[1] = xfs_rmapbt_maxrecs(sbp->sb_blocksize, 0); in xfs_sb_mount_common()
884 mp->m_refc_mxr[0] = xfs_refcountbt_maxrecs(sbp->sb_blocksize, true); in xfs_sb_mount_common()
885 mp->m_refc_mxr[1] = xfs_refcountbt_maxrecs(sbp->sb_blocksize, false); in xfs_sb_mount_common()
1068 struct xfs_sb *sbp = &mp->m_sb; in xfs_fs_geometry() local
1072 geo->blocksize = sbp->sb_blocksize; in xfs_fs_geometry()
1073 geo->rtextsize = sbp->sb_rextsize; in xfs_fs_geometry()
1074 geo->agblocks = sbp->sb_agblocks; in xfs_fs_geometry()
1075 geo->agcount = sbp->sb_agcount; in xfs_fs_geometry()
1076 geo->logblocks = sbp->sb_logblocks; in xfs_fs_geometry()
1077 geo->sectsize = sbp->sb_sectsize; in xfs_fs_geometry()
1078 geo->inodesize = sbp->sb_inodesize; in xfs_fs_geometry()
1079 geo->imaxpct = sbp->sb_imax_pct; in xfs_fs_geometry()
1080 geo->datablocks = sbp->sb_dblocks; in xfs_fs_geometry()
1081 geo->rtblocks = sbp->sb_rblocks; in xfs_fs_geometry()
1082 geo->rtextents = sbp->sb_rextents; in xfs_fs_geometry()
1083 geo->logstart = sbp->sb_logstart; in xfs_fs_geometry()
1084 BUILD_BUG_ON(sizeof(geo->uuid) != sizeof(sbp->sb_uuid)); in xfs_fs_geometry()
1085 memcpy(geo->uuid, &sbp->sb_uuid, sizeof(sbp->sb_uuid)); in xfs_fs_geometry()
1090 geo->sunit = sbp->sb_unit; in xfs_fs_geometry()
1091 geo->swidth = sbp->sb_width; in xfs_fs_geometry()
1134 geo->logsectsize = sbp->sb_logsectsize; in xfs_fs_geometry()
1138 geo->rtsectsize = sbp->sb_blocksize; in xfs_fs_geometry()
1139 geo->dirblocksize = xfs_dir2_dirblock_bytes(sbp); in xfs_fs_geometry()
1147 geo->logsunit = sbp->sb_logsunit; in xfs_fs_geometry()