@@ -567,15 +567,16 @@ static int setup_temp_csum_tree(int fd, struct btrfs_mkfs_config *cfg,
567567 */
568568static int insert_temp_extent_item (int fd , struct extent_buffer * buf ,
569569 struct btrfs_mkfs_config * cfg ,
570- int * slot , u32 * itemoff , u64 bytenr ,
571- u64 ref_root )
570+ u64 bytenr , u64 ref_root )
572571{
573572 struct extent_buffer * tmp ;
574573 struct btrfs_extent_item * ei ;
575574 struct btrfs_extent_inline_ref * iref ;
576575 struct btrfs_disk_key disk_key ;
577576 struct btrfs_disk_key tree_info_key ;
578577 struct btrfs_tree_block_info * info ;
578+ u32 slot = btrfs_header_nritems (buf );
579+ u32 itemoff = get_item_offset (buf , cfg );
579580 int itemsize ;
580581 int skinny_metadata = cfg -> features .incompat_flags &
581582 BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA ;
@@ -587,8 +588,8 @@ static int insert_temp_extent_item(int fd, struct extent_buffer *buf,
587588 itemsize = sizeof (* ei ) + sizeof (* iref ) +
588589 sizeof (struct btrfs_tree_block_info );
589590
590- btrfs_set_header_nritems (buf , * slot + 1 );
591- * ( itemoff ) -= itemsize ;
591+ btrfs_set_header_nritems (buf , slot + 1 );
592+ itemoff -= itemsize ;
592593
593594 if (skinny_metadata ) {
594595 btrfs_set_disk_key_type (& disk_key , BTRFS_METADATA_ITEM_KEY );
@@ -599,11 +600,11 @@ static int insert_temp_extent_item(int fd, struct extent_buffer *buf,
599600 }
600601 btrfs_set_disk_key_objectid (& disk_key , bytenr );
601602
602- btrfs_set_item_key (buf , & disk_key , * slot );
603- btrfs_set_item_offset (buf , * slot , * itemoff );
604- btrfs_set_item_size (buf , * slot , itemsize );
603+ btrfs_set_item_key (buf , & disk_key , slot );
604+ btrfs_set_item_offset (buf , slot , itemoff );
605+ btrfs_set_item_size (buf , slot , itemsize );
605606
606- ei = btrfs_item_ptr (buf , * slot , struct btrfs_extent_item );
607+ ei = btrfs_item_ptr (buf , slot , struct btrfs_extent_item );
607608 btrfs_set_extent_refs (buf , ei , 1 );
608609 btrfs_set_extent_generation (buf , ei , 1 );
609610 btrfs_set_extent_flags (buf , ei , BTRFS_EXTENT_FLAG_TREE_BLOCK );
@@ -618,7 +619,6 @@ static int insert_temp_extent_item(int fd, struct extent_buffer *buf,
618619 BTRFS_TREE_BLOCK_REF_KEY );
619620 btrfs_set_extent_inline_ref_offset (buf , iref , ref_root );
620621
621- (* slot )++ ;
622622 if (skinny_metadata )
623623 return 0 ;
624624
@@ -654,28 +654,28 @@ static int insert_temp_extent_item(int fd, struct extent_buffer *buf,
654654
655655static void insert_temp_block_group (struct extent_buffer * buf ,
656656 struct btrfs_mkfs_config * cfg ,
657- int * slot , u32 * itemoff ,
658657 u64 bytenr , u64 len , u64 used , u64 flag )
659658{
660659 struct btrfs_block_group_item bgi ;
661660 struct btrfs_disk_key disk_key ;
661+ u32 slot = btrfs_header_nritems (buf );
662+ u32 itemoff = get_item_offset (buf , cfg );
662663
663- btrfs_set_header_nritems (buf , * slot + 1 );
664- ( * itemoff ) -= sizeof (bgi );
664+ btrfs_set_header_nritems (buf , slot + 1 );
665+ itemoff -= sizeof (bgi );
665666 btrfs_set_disk_key_type (& disk_key , BTRFS_BLOCK_GROUP_ITEM_KEY );
666667 btrfs_set_disk_key_objectid (& disk_key , bytenr );
667668 btrfs_set_disk_key_offset (& disk_key , len );
668- btrfs_set_item_key (buf , & disk_key , * slot );
669- btrfs_set_item_offset (buf , * slot , * itemoff );
670- btrfs_set_item_size (buf , * slot , sizeof (bgi ));
669+ btrfs_set_item_key (buf , & disk_key , slot );
670+ btrfs_set_item_offset (buf , slot , itemoff );
671+ btrfs_set_item_size (buf , slot , sizeof (bgi ));
671672
672673 btrfs_set_stack_block_group_flags (& bgi , flag );
673674 btrfs_set_stack_block_group_used (& bgi , used );
674675 btrfs_set_stack_block_group_chunk_objectid (& bgi ,
675676 BTRFS_FIRST_CHUNK_TREE_OBJECTID );
676- write_extent_buffer (buf , & bgi , btrfs_item_ptr_offset (buf , * slot ),
677+ write_extent_buffer (buf , & bgi , btrfs_item_ptr_offset (buf , slot ),
677678 sizeof (bgi ));
678- (* slot )++ ;
679679}
680680
681681static int setup_temp_extent_tree (int fd , struct btrfs_mkfs_config * cfg ,
@@ -684,8 +684,6 @@ static int setup_temp_extent_tree(int fd, struct btrfs_mkfs_config *cfg,
684684 u64 fs_bytenr , u64 csum_bytenr )
685685{
686686 struct extent_buffer * buf = NULL ;
687- u32 itemoff = cfg -> leaf_data_size ;
688- int slot = 0 ;
689687 int ret ;
690688
691689 /*
@@ -704,39 +702,39 @@ static int setup_temp_extent_tree(int fd, struct btrfs_mkfs_config *cfg,
704702 if (ret < 0 )
705703 goto out ;
706704
707- ret = insert_temp_extent_item (fd , buf , cfg , & slot , & itemoff ,
708- chunk_bytenr , BTRFS_CHUNK_TREE_OBJECTID );
705+ ret = insert_temp_extent_item (fd , buf , cfg , chunk_bytenr ,
706+ BTRFS_CHUNK_TREE_OBJECTID );
709707 if (ret < 0 )
710708 goto out ;
711709
712- insert_temp_block_group (buf , cfg , & slot , & itemoff , chunk_bytenr ,
713- BTRFS_MKFS_SYSTEM_GROUP_SIZE , cfg -> nodesize ,
714- BTRFS_BLOCK_GROUP_SYSTEM );
710+ insert_temp_block_group (buf , cfg , chunk_bytenr ,
711+ BTRFS_MKFS_SYSTEM_GROUP_SIZE , cfg -> nodesize ,
712+ BTRFS_BLOCK_GROUP_SYSTEM );
715713
716- ret = insert_temp_extent_item (fd , buf , cfg , & slot , & itemoff ,
717- root_bytenr , BTRFS_ROOT_TREE_OBJECTID );
714+ ret = insert_temp_extent_item (fd , buf , cfg , root_bytenr ,
715+ BTRFS_ROOT_TREE_OBJECTID );
718716 if (ret < 0 )
719717 goto out ;
720718
721719 /* 5 tree block used, root, extent, dev, fs and csum*/
722- insert_temp_block_group (buf , cfg , & slot , & itemoff , root_bytenr ,
723- BTRFS_CONVERT_META_GROUP_SIZE , cfg -> nodesize * 5 ,
724- BTRFS_BLOCK_GROUP_METADATA );
720+ insert_temp_block_group (buf , cfg , root_bytenr ,
721+ BTRFS_CONVERT_META_GROUP_SIZE , cfg -> nodesize * 5 ,
722+ BTRFS_BLOCK_GROUP_METADATA );
725723
726- ret = insert_temp_extent_item (fd , buf , cfg , & slot , & itemoff ,
727- extent_bytenr , BTRFS_EXTENT_TREE_OBJECTID );
724+ ret = insert_temp_extent_item (fd , buf , cfg , extent_bytenr ,
725+ BTRFS_EXTENT_TREE_OBJECTID );
728726 if (ret < 0 )
729727 goto out ;
730- ret = insert_temp_extent_item (fd , buf , cfg , & slot , & itemoff ,
731- dev_bytenr , BTRFS_DEV_TREE_OBJECTID );
728+ ret = insert_temp_extent_item (fd , buf , cfg , dev_bytenr ,
729+ BTRFS_DEV_TREE_OBJECTID );
732730 if (ret < 0 )
733731 goto out ;
734- ret = insert_temp_extent_item (fd , buf , cfg , & slot , & itemoff ,
735- fs_bytenr , BTRFS_FS_TREE_OBJECTID );
732+ ret = insert_temp_extent_item (fd , buf , cfg , fs_bytenr ,
733+ BTRFS_FS_TREE_OBJECTID );
736734 if (ret < 0 )
737735 goto out ;
738- ret = insert_temp_extent_item (fd , buf , cfg , & slot , & itemoff ,
739- csum_bytenr , BTRFS_CSUM_TREE_OBJECTID );
736+ ret = insert_temp_extent_item (fd , buf , cfg , csum_bytenr ,
737+ BTRFS_CSUM_TREE_OBJECTID );
740738 if (ret < 0 )
741739 goto out ;
742740
0 commit comments