Lines Matching refs:sbp
26 static int nilfs_valid_sb(struct nilfs_super_block *sbp);
101 struct nilfs_super_block **sbp = nilfs->ns_sbp; in nilfs_load_super_root() local
112 dat_entry_size = le16_to_cpu(sbp[0]->s_dat_entry_size); in nilfs_load_super_root()
113 checkpoint_size = le16_to_cpu(sbp[0]->s_checkpoint_size); in nilfs_load_super_root()
114 segment_usage_size = le16_to_cpu(sbp[0]->s_segment_usage_size); in nilfs_load_super_root()
172 struct nilfs_super_block *sbp) in nilfs_store_log_cursor() argument
176 nilfs->ns_last_pseg = le64_to_cpu(sbp->s_last_pseg); in nilfs_store_log_cursor()
177 nilfs->ns_last_cno = le64_to_cpu(sbp->s_last_cno); in nilfs_store_log_cursor()
178 nilfs->ns_last_seq = le64_to_cpu(sbp->s_last_seq); in nilfs_store_log_cursor()
226 struct nilfs_super_block **sbp = nilfs->ns_sbp; in load_nilfs() local
232 if (!nilfs_valid_sb(sbp[1])) { in load_nilfs()
243 memcpy(sbp[0], sbp[1], nilfs->ns_sbsize); in load_nilfs()
244 nilfs->ns_crc_seed = le32_to_cpu(sbp[0]->s_crc_seed); in load_nilfs()
245 nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime); in load_nilfs()
248 blocksize = BLOCK_SIZE << le32_to_cpu(sbp[0]->s_log_block_size); in load_nilfs()
256 err = nilfs_store_log_cursor(nilfs, sbp[0]); in load_nilfs()
376 struct nilfs_super_block *sbp) in nilfs_store_disk_layout() argument
378 if (le32_to_cpu(sbp->s_rev_level) < NILFS_MIN_SUPP_REV) { in nilfs_store_disk_layout()
381 le32_to_cpu(sbp->s_rev_level), in nilfs_store_disk_layout()
382 le16_to_cpu(sbp->s_minor_rev_level), in nilfs_store_disk_layout()
386 nilfs->ns_sbsize = le16_to_cpu(sbp->s_bytes); in nilfs_store_disk_layout()
390 nilfs->ns_inode_size = le16_to_cpu(sbp->s_inode_size); in nilfs_store_disk_layout()
401 nilfs->ns_first_ino = le32_to_cpu(sbp->s_first_ino); in nilfs_store_disk_layout()
403 nilfs->ns_blocks_per_segment = le32_to_cpu(sbp->s_blocks_per_segment); in nilfs_store_disk_layout()
410 nilfs->ns_first_data_block = le64_to_cpu(sbp->s_first_data_block); in nilfs_store_disk_layout()
412 le32_to_cpu(sbp->s_r_segments_percentage); in nilfs_store_disk_layout()
421 nilfs_set_nsegments(nilfs, le64_to_cpu(sbp->s_nsegments)); in nilfs_store_disk_layout()
422 nilfs->ns_crc_seed = le32_to_cpu(sbp->s_crc_seed); in nilfs_store_disk_layout()
426 static int nilfs_valid_sb(struct nilfs_super_block *sbp) in nilfs_valid_sb() argument
433 if (!sbp || le16_to_cpu(sbp->s_magic) != NILFS_SUPER_MAGIC) in nilfs_valid_sb()
435 bytes = le16_to_cpu(sbp->s_bytes); in nilfs_valid_sb()
438 crc = crc32_le(le32_to_cpu(sbp->s_crc_seed), (unsigned char *)sbp, in nilfs_valid_sb()
441 crc = crc32_le(crc, (unsigned char *)sbp + sumoff + 4, in nilfs_valid_sb()
443 return crc == le32_to_cpu(sbp->s_sum); in nilfs_valid_sb()
446 static int nilfs_sb2_bad_offset(struct nilfs_super_block *sbp, u64 offset) in nilfs_sb2_bad_offset() argument
448 return offset < ((le64_to_cpu(sbp->s_nsegments) * in nilfs_sb2_bad_offset()
449 le32_to_cpu(sbp->s_blocks_per_segment)) << in nilfs_sb2_bad_offset()
450 (le32_to_cpu(sbp->s_log_block_size) + 10)); in nilfs_sb2_bad_offset()
490 struct nilfs_super_block **sbp = nilfs->ns_sbp; in nilfs_load_super_block() local
495 sbp[0] = nilfs_read_super_block(sb, NILFS_SB_OFFSET_BYTES, blocksize, in nilfs_load_super_block()
497 sbp[1] = nilfs_read_super_block(sb, sb2off, blocksize, &sbh[1]); in nilfs_load_super_block()
499 if (!sbp[0]) { in nilfs_load_super_block()
500 if (!sbp[1]) { in nilfs_load_super_block()
507 } else if (!sbp[1]) { in nilfs_load_super_block()
517 valid[0] = nilfs_valid_sb(sbp[0]); in nilfs_load_super_block()
518 valid[1] = nilfs_valid_sb(sbp[1]); in nilfs_load_super_block()
520 le64_to_cpu(sbp[1]->s_last_cno) > in nilfs_load_super_block()
521 le64_to_cpu(sbp[0]->s_last_cno)); in nilfs_load_super_block()
523 if (valid[swp] && nilfs_sb2_bad_offset(sbp[swp], sb2off)) { in nilfs_load_super_block()
526 sbp[1] = NULL; in nilfs_load_super_block()
544 nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime); in nilfs_load_super_block()
545 nilfs->ns_prot_seq = le64_to_cpu(sbp[valid[1] & !swp]->s_last_seq); in nilfs_load_super_block()
546 *sbpp = sbp[0]; in nilfs_load_super_block()
565 struct nilfs_super_block *sbp; in init_nilfs() local
577 err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp); in init_nilfs()
581 err = nilfs_store_magic_and_option(sb, sbp, data); in init_nilfs()
585 err = nilfs_check_feature_compatibility(sb, sbp); in init_nilfs()
589 blocksize = BLOCK_SIZE << le32_to_cpu(sbp->s_log_block_size); in init_nilfs()
611 err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp); in init_nilfs()
625 err = nilfs_store_disk_layout(nilfs, sbp); in init_nilfs()
631 nilfs->ns_mount_state = le16_to_cpu(sbp->s_state); in init_nilfs()
633 err = nilfs_store_log_cursor(nilfs, sbp); in init_nilfs()