Lines Matching refs: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);
502 nilfs->ns_crc_seed = le32_to_cpu(sbp->s_crc_seed);
506 static int nilfs_valid_sb(struct nilfs_super_block *sbp)
513 if (!sbp || le16_to_cpu(sbp->s_magic) != NILFS_SUPER_MAGIC)
515 bytes = le16_to_cpu(sbp->s_bytes);
518 crc = crc32_le(le32_to_cpu(sbp->s_crc_seed), (unsigned char *)sbp,
521 crc = crc32_le(crc, (unsigned char *)sbp + sumoff + 4,
523 return crc == le32_to_cpu(sbp->s_sum);
528 * @sbp: superblock raw data buffer
533 * stored in @sbp. If @offset points to a location within the segment
539 static bool nilfs_sb2_bad_offset(struct nilfs_super_block *sbp, u64 offset)
541 unsigned int shift_bits = le32_to_cpu(sbp->s_log_block_size);
542 u32 blocks_per_segment = le32_to_cpu(sbp->s_blocks_per_segment);
543 u64 nsegments = le64_to_cpu(sbp->s_nsegments);
592 struct nilfs_super_block **sbp = nilfs->ns_sbp;
603 sbp[0] = nilfs_read_super_block(sb, NILFS_SB_OFFSET_BYTES, blocksize,
605 sbp[1] = nilfs_read_super_block(sb, sb2off, blocksize, &sbh[1]);
607 if (!sbp[0]) {
608 if (!sbp[1]) {
615 } else if (!sbp[1]) {
625 valid[0] = nilfs_valid_sb(sbp[0]);
626 valid[1] = nilfs_valid_sb(sbp[1]);
628 le64_to_cpu(sbp[1]->s_last_cno) >
629 le64_to_cpu(sbp[0]->s_last_cno));
631 if (valid[swp] && nilfs_sb2_bad_offset(sbp[swp], sb2off)) {
634 sbp[1] = NULL;
652 nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime);
653 nilfs->ns_prot_seq = le64_to_cpu(sbp[valid[1] & !swp]->s_last_seq);
654 *sbpp = sbp[0];
673 struct nilfs_super_block *sbp;
685 err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp);
689 err = nilfs_store_magic_and_option(sb, sbp, data);
693 err = nilfs_check_feature_compatibility(sb, sbp);
697 err = nilfs_get_blocksize(sb, sbp, &blocksize);
725 err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp);
739 err = nilfs_store_disk_layout(nilfs, sbp);
745 nilfs->ns_mount_state = le16_to_cpu(sbp->s_state);
747 err = nilfs_store_log_cursor(nilfs, sbp);