Lines Matching refs:sbp

39 static int nilfs_valid_sb(struct nilfs_super_block *sbp);
113 struct nilfs_super_block **sbp = nilfs->ns_sbp; in nilfs_load_super_root() local
124 dat_entry_size = le16_to_cpu(sbp[0]->s_dat_entry_size); in nilfs_load_super_root()
125 checkpoint_size = le16_to_cpu(sbp[0]->s_checkpoint_size); in nilfs_load_super_root()
126 segment_usage_size = le16_to_cpu(sbp[0]->s_segment_usage_size); in nilfs_load_super_root()
184 struct nilfs_super_block *sbp) in nilfs_store_log_cursor() argument
188 nilfs->ns_last_pseg = le64_to_cpu(sbp->s_last_pseg); in nilfs_store_log_cursor()
189 nilfs->ns_last_cno = le64_to_cpu(sbp->s_last_cno); in nilfs_store_log_cursor()
190 nilfs->ns_last_seq = le64_to_cpu(sbp->s_last_seq); in nilfs_store_log_cursor()
235 struct nilfs_super_block **sbp = nilfs->ns_sbp; in load_nilfs() local
241 if (!nilfs_valid_sb(sbp[1])) { in load_nilfs()
254 memcpy(sbp[0], sbp[1], nilfs->ns_sbsize); in load_nilfs()
255 nilfs->ns_crc_seed = le32_to_cpu(sbp[0]->s_crc_seed); in load_nilfs()
256 nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime); in load_nilfs()
259 blocksize = BLOCK_SIZE << le32_to_cpu(sbp[0]->s_log_block_size); in load_nilfs()
268 err = nilfs_store_log_cursor(nilfs, sbp[0]); in load_nilfs()
388 struct nilfs_super_block *sbp) in nilfs_store_disk_layout() argument
390 if (le32_to_cpu(sbp->s_rev_level) < NILFS_MIN_SUPP_REV) { in nilfs_store_disk_layout()
394 le32_to_cpu(sbp->s_rev_level), in nilfs_store_disk_layout()
395 le16_to_cpu(sbp->s_minor_rev_level), in nilfs_store_disk_layout()
399 nilfs->ns_sbsize = le16_to_cpu(sbp->s_bytes); in nilfs_store_disk_layout()
403 nilfs->ns_inode_size = le16_to_cpu(sbp->s_inode_size); in nilfs_store_disk_layout()
414 nilfs->ns_first_ino = le32_to_cpu(sbp->s_first_ino); in nilfs_store_disk_layout()
416 nilfs->ns_blocks_per_segment = le32_to_cpu(sbp->s_blocks_per_segment); in nilfs_store_disk_layout()
422 nilfs->ns_first_data_block = le64_to_cpu(sbp->s_first_data_block); in nilfs_store_disk_layout()
424 le32_to_cpu(sbp->s_r_segments_percentage); in nilfs_store_disk_layout()
431 nilfs_set_nsegments(nilfs, le64_to_cpu(sbp->s_nsegments)); in nilfs_store_disk_layout()
432 nilfs->ns_crc_seed = le32_to_cpu(sbp->s_crc_seed); in nilfs_store_disk_layout()
436 static int nilfs_valid_sb(struct nilfs_super_block *sbp) in nilfs_valid_sb() argument
443 if (!sbp || le16_to_cpu(sbp->s_magic) != NILFS_SUPER_MAGIC) in nilfs_valid_sb()
445 bytes = le16_to_cpu(sbp->s_bytes); in nilfs_valid_sb()
448 crc = crc32_le(le32_to_cpu(sbp->s_crc_seed), (unsigned char *)sbp, in nilfs_valid_sb()
451 crc = crc32_le(crc, (unsigned char *)sbp + sumoff + 4, in nilfs_valid_sb()
453 return crc == le32_to_cpu(sbp->s_sum); in nilfs_valid_sb()
456 static int nilfs_sb2_bad_offset(struct nilfs_super_block *sbp, u64 offset) in nilfs_sb2_bad_offset() argument
458 return offset < ((le64_to_cpu(sbp->s_nsegments) * in nilfs_sb2_bad_offset()
459 le32_to_cpu(sbp->s_blocks_per_segment)) << in nilfs_sb2_bad_offset()
460 (le32_to_cpu(sbp->s_log_block_size) + 10)); in nilfs_sb2_bad_offset()
500 struct nilfs_super_block **sbp = nilfs->ns_sbp; in nilfs_load_super_block() local
505 sbp[0] = nilfs_read_super_block(sb, NILFS_SB_OFFSET_BYTES, blocksize, in nilfs_load_super_block()
507 sbp[1] = nilfs_read_super_block(sb, sb2off, blocksize, &sbh[1]); in nilfs_load_super_block()
509 if (!sbp[0]) { in nilfs_load_super_block()
510 if (!sbp[1]) { in nilfs_load_super_block()
517 } else if (!sbp[1]) { in nilfs_load_super_block()
527 valid[0] = nilfs_valid_sb(sbp[0]); in nilfs_load_super_block()
528 valid[1] = nilfs_valid_sb(sbp[1]); in nilfs_load_super_block()
530 le64_to_cpu(sbp[1]->s_last_cno) > in nilfs_load_super_block()
531 le64_to_cpu(sbp[0]->s_last_cno)); in nilfs_load_super_block()
533 if (valid[swp] && nilfs_sb2_bad_offset(sbp[swp], sb2off)) { in nilfs_load_super_block()
536 sbp[1] = NULL; in nilfs_load_super_block()
554 nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime); in nilfs_load_super_block()
555 nilfs->ns_prot_seq = le64_to_cpu(sbp[valid[1] & !swp]->s_last_seq); in nilfs_load_super_block()
556 *sbpp = sbp[0]; in nilfs_load_super_block()
575 struct nilfs_super_block *sbp; in init_nilfs() local
587 err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp); in init_nilfs()
591 err = nilfs_store_magic_and_option(sb, sbp, data); in init_nilfs()
595 err = nilfs_check_feature_compatibility(sb, sbp); in init_nilfs()
599 blocksize = BLOCK_SIZE << le32_to_cpu(sbp->s_log_block_size); in init_nilfs()
621 err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp); in init_nilfs()
633 err = nilfs_store_disk_layout(nilfs, sbp); in init_nilfs()
639 nilfs->ns_mount_state = le16_to_cpu(sbp->s_state); in init_nilfs()
641 err = nilfs_store_log_cursor(nilfs, sbp); in init_nilfs()