Lines Matching defs:sbp
27 static int nilfs_valid_sb(struct nilfs_super_block *sbp);
101 struct nilfs_super_block **sbp = nilfs->ns_sbp;
112 dat_entry_size = le16_to_cpu(sbp[0]->s_dat_entry_size);
113 checkpoint_size = le16_to_cpu(sbp[0]->s_checkpoint_size);
114 segment_usage_size = le16_to_cpu(sbp[0]->s_segment_usage_size);
164 * @sbp: buffer storing super block to be read
172 struct nilfs_super_block *sbp)
176 nilfs->ns_last_pseg = le64_to_cpu(sbp->s_last_pseg);
177 nilfs->ns_last_cno = le64_to_cpu(sbp->s_last_cno);
178 nilfs->ns_last_seq = le64_to_cpu(sbp->s_last_seq);
198 * @sbp: superblock raw data buffer
202 * exponent information written in @sbp and stores it in @blocksize,
209 struct nilfs_super_block *sbp, int *blocksize)
211 unsigned int shift_bits = le32_to_cpu(sbp->s_log_block_size);
254 struct nilfs_super_block **sbp = nilfs->ns_sbp;
260 if (!nilfs_valid_sb(sbp[1])) {
271 memcpy(sbp[0], sbp[1], nilfs->ns_sbsize);
272 nilfs->ns_crc_seed = le32_to_cpu(sbp[0]->s_crc_seed);
273 nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime);
276 err = nilfs_get_blocksize(sb, sbp[0], &blocksize);
288 err = nilfs_store_log_cursor(nilfs, sbp[0]);
427 struct nilfs_super_block *sbp)
431 if (le32_to_cpu(sbp->s_rev_level) < NILFS_MIN_SUPP_REV) {
434 le32_to_cpu(sbp->s_rev_level),
435 le16_to_cpu(sbp->s_minor_rev_level),
439 nilfs->ns_sbsize = le16_to_cpu(sbp->s_bytes);
443 nilfs->ns_inode_size = le16_to_cpu(sbp->s_inode_size);
454 nilfs->ns_first_ino = le32_to_cpu(sbp->s_first_ino);
456 nilfs->ns_blocks_per_segment = le32_to_cpu(sbp->s_blocks_per_segment);
463 nilfs->ns_first_data_block = le64_to_cpu(sbp->s_first_data_block);
465 le32_to_cpu(sbp->s_r_segments_percentage);
474 nsegments = le64_to_cpu(sbp->s_nsegments);
503 nilfs->ns_crc_seed = le32_to_cpu(sbp->s_crc_seed);
507 static int nilfs_valid_sb(struct nilfs_super_block *sbp)
514 if (!sbp || le16_to_cpu(sbp->s_magic) != NILFS_SUPER_MAGIC)
516 bytes = le16_to_cpu(sbp->s_bytes);
519 crc = crc32_le(le32_to_cpu(sbp->s_crc_seed), (unsigned char *)sbp,
522 crc = crc32_le(crc, (unsigned char *)sbp + sumoff + 4,
524 return crc == le32_to_cpu(sbp->s_sum);
529 * @sbp: superblock raw data buffer
534 * stored in @sbp. If @offset points to a location within the segment
540 static bool nilfs_sb2_bad_offset(struct nilfs_super_block *sbp, u64 offset)
542 unsigned int shift_bits = le32_to_cpu(sbp->s_log_block_size);
543 u32 blocks_per_segment = le32_to_cpu(sbp->s_blocks_per_segment);
544 u64 nsegments = le64_to_cpu(sbp->s_nsegments);
593 struct nilfs_super_block **sbp = nilfs->ns_sbp;
604 sbp[0] = nilfs_read_super_block(sb, NILFS_SB_OFFSET_BYTES, blocksize,
606 sbp[1] = nilfs_read_super_block(sb, sb2off, blocksize, &sbh[1]);
608 if (!sbp[0]) {
609 if (!sbp[1]) {
616 } else if (!sbp[1]) {
626 valid[0] = nilfs_valid_sb(sbp[0]);
627 valid[1] = nilfs_valid_sb(sbp[1]);
629 le64_to_cpu(sbp[1]->s_last_cno) >
630 le64_to_cpu(sbp[0]->s_last_cno));
632 if (valid[swp] && nilfs_sb2_bad_offset(sbp[swp], sb2off)) {
635 sbp[1] = NULL;
653 nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime);
654 nilfs->ns_prot_seq = le64_to_cpu(sbp[valid[1] & !swp]->s_last_seq);
655 *sbpp = sbp[0];
674 struct nilfs_super_block *sbp;
686 err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp);
690 err = nilfs_store_magic_and_option(sb, sbp, data);
694 err = nilfs_check_feature_compatibility(sb, sbp);
698 err = nilfs_get_blocksize(sb, sbp, &blocksize);
726 err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp);
740 err = nilfs_store_disk_layout(nilfs, sbp);
746 nilfs->ns_mount_state = le16_to_cpu(sbp->s_state);
748 err = nilfs_store_log_cursor(nilfs, sbp);