linux/fs/ext4/balloc.c
<<
> > p/spaln pspal class="lxr_search"> > > >Search > p/spaln > pinput typue=hidden" namue=ajax_lookup" ide=ajax_lookup" a2alue="> > pdiv ide=file_contents"n
o o1p/a>pspal class="comment">/*p/spaln o o2p/a>pspal class="comment"> *  linux/fs/ext4/balloc.cp/spaln o o3p/a>pspal class="comment"> *p/spaln o o4p/a>pspal class="comment"> * Copyright (C) 1992, 1993, 1994, 1995p/spaln o o5p/a>pspal class="comment"> * Remy Card (card@masi.ibp.fr)p/spaln o o6p/a>pspal class="comment"> * Laboratoire MASI - Institut Blaise Pascalp/spaln o o7p/a>pspal class="comment"> * Universite Pierre et Marie Curie (Paris VI)p/spaln o o8p/a>pspal class="comment"> *p/spaln o o9p/a>pspal class="comment"> *  Enhanced block allocao2o vby Stephen Tweedie (sct@redhat.com), 1993p/spaln o pt2oa>pspal class="comment"> *  Big-endial to little-endial byte-swapping/bitmaps byp/spaln o 11p/a>pspal class="comment"> *        David S. Miller (davem@caip.rutgers.edu), 1995p/spaln o 12p/a>pspal class="comment"> */p/spaln o 13p/a> o 14p/a>#include <linux/time.hp/a>> o 15p/a>#include <linux/capability.hp/a>> o 16p/a>#include <linux/fs.hp/a>> o 17p/a>#include <linux/jbd2.hp/a>> o 18p/a>#include <linux/quotaops.hp/a>> o 19p/a>#include <linux/buffer_head.hp/a>> o 20p/a>#include "ext4.hp/a>" o 21p/a>#include "ext4_jbd2.hp/a>" o 22p/a>#include "mballoc.hp/a>" o 23p/a> o 24p/a>#include <trace/events/ext4.hp/a>> o 25p/a> o 26p/a>static unsigned pa href="+code=ext4_num_base_meta_clusters" class="sref">ext4_num_base_meta_clustersp/a>(struct pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, o 27p/a>                                            pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> pa href="+code=block_group" class="sref">block_groupp/a>); o 28p/a>pspal class="comment">/*p/spaln o 29p/a>pspal class="comment"> * balloc.c contains the blocks allocao2o vand deallocao2o vroutinesp/spaln o 3t2oa>pspal class="comment"> */p/spaln o 31p/a> o 32p/a>pspal class="comment">/*p/spaln o 33p/a>pspal class="comment"> * Calculate the block group number and offset into the block/clusterp/spaln o 34p/a>pspal class="comment"> * allocao2o vbitmap, give va block numberp/spaln o 35p/a>pspal class="comment"> */p/spaln o 36p/a>void pa href="+code=ext4_get_group_no_and_offset" class="sref">ext4_get_group_no_and_offsetp/a>(struct pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, pa href="+code=ext4_fsblk_t" class="sref">ext4_fsblk_tp/a> pa href="+code=blocknr" class="sref">blocknrp/a>, o 37p/a>                pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> *pa href="+code=blockgrpp" class="sref">blockgrppp/a>, pa href="+code=ext4_grpblk_t" class="sref">ext4_grpblk_tp/a> *pa href="+code=offsetp" class="sref">offsetpp/a>) o 38p/a>{ o 39p/a>        struct pa href="+code=ext4_super_block" class="sref">ext4_super_blockp/a> *pa href="+code=es" class="sref">esp/a> = pa href="+code=EXT4_SB" class="sref">EXT4_SBp/a>(pa href="+code=sb" class="sref">sbp/a>)->pa href="+code=s_es" class="sref">s_esp/a>; o 40p/a>        pa href="+code=ext4_grpblk_t" class="sref">ext4_grpblk_tp/a> pa href="+code=offset" class="sref">offsetp/a>; o 41p/a> o 42p/a>        pa href="+code=blocknr" class="sref">blocknrp/a> = pa href="+code=blocknr" class="sref">blocknrp/a> - pa href="+code=le32_to_cpu" class="sref">le32_to_cpup/a>(pa href="+code=es" class="sref">esp/a>->pa href="+code=s_first_data_block" class="sref">s_first_data_blockp/a>); o 43p/a>        pa href="+code=offset" class="sref">offsetp/a> = pa href="+code=do_div" class="sref">do_divp/a>(pa href="+code=blocknr" class="sref">blocknrp/a>, pa href="+code=EXT4_BLOCKS_PER_GROUP" class="sref">EXT4_BLOCKS_PER_GROUPp/a>(pa href="+code=sb" class="sref">sbp/a>)) >> o 44p/a>                pa href="+code=EXT4_SB" class="sref">EXT4_SBp/a>(pa href="+code=sb" class="sref">sbp/a>)->pa href="+code=s_cluster_bits" class="sref">s_cluster_bitsp/a>; o 45p/a>        if (pa href="+code=offsetp" class="sref">offsetpp/a>) o 46p/a>                *pa href="+code=offsetp" class="sref">offsetpp/a> = pa href="+code=offset" class="sref">offsetp/a>; o 47p/a>        if (pa href="+code=blockgrpp" class="sref">blockgrppp/a>) o 48p/a>                *pa href="+code=blockgrpp" class="sref">blockgrppp/a> = pa href="+code=blocknr" class="sref">blocknrp/a>; o 49p/a> o 50p/a>} o 51p/a> o 52p/a>static int pa href="+code=ext4_block_in_group" class="sref">ext4_block_in_groupp/a>(struct pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, pa href="+code=ext4_fsblk_t" class="sref">ext4_fsblk_tp/a> pa href="+code=block" class="sref">blockp/a>, o 53p/a>                        pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> pa href="+code=block_group" class="sref">block_groupp/a>) o 54p/a>{ o 55p/a>        pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> pa href="+code=actual_group" class="sref">actual_groupp/a>; o 56p/a>        pa href="+code=ext4_get_group_no_and_offset" class="sref">ext4_get_group_no_and_offsetp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block" class="sref">blockp/a>, &pa href="+code=actual_group" class="sref">actual_groupp/a>, pa href="+code=NULL" class="sref">NULLp/a>); o 57p/a>        if (pa href="+code=actual_group" class="sref">actual_groupp/a> == pa href="+code=block_group" class="sref">block_groupp/a>) o 58p/a>                return 1; o 59p/a>        return 0; o 60p/a>} o 61p/a> o 62p/a>pspal class="comment">/* Return the number of clusters used for file system metadata; thisp/spaln o 63p/a>pspal class="comment"> * represents the overhead needed by the file system.p/spaln o 64p/a>pspal class="comment"> */p/spaln o 65p/a>unsigned pa href="+code=ext4_num_overhead_clusters" class="sref">ext4_num_overhead_clustersp/a>(struct pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, o 66p/a>                                    pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> pa href="+code=block_group" class="sref">block_groupp/a>, o 67p/a>                                    struct pa href="+code=ext4_group_desc" class="sref">ext4_group_descp/a> *pa href="+code=gdp" class="sref">gdpp/a>) o 68p/a>{ o 69p/a>        unsigned pa href="+code=num_clusters" class="sref">num_clustersp/a>; o 70p/a>        int pa href="+code=block_cluster" class="sref">block_clusterp/a> = -1, pa href="+code=inode_cluster" class="sref">inode_clusterp/a> = -1, pa href="+code=itbl_cluster" class="sref">itbl_clusterp/a> = -1, pa href="+code=i" class="sref">ip/a>, pa href="+code=c" class="sref">cp/a>; o 71p/a>        pa href="+code=ext4_fsblk_t" class="sref">ext4_fsblk_tp/a> pa href="+code=start" class="sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>); o 72p/a>        pa href="+code=ext4_fsblk_t" class="sref">ext4_fsblk_tp/a> pa href="+code=itbl_blk" class="sref">itbl_blkp/a>; o 73p/a>        struct pa href="+code=ext4_sb_info" class="sref">ext4_sb_infop/a> *pa href="+code=sbi" class="sref">sbip/a> = pa href="+code=EXT4_SB" class="sref">EXT4_SBp/a>(pa href="+code=sb" class="sref">sbp/a>); o 74p/a> o 75p/a>        pspal class="comment">/* This is the number of clusters used by the superblock,p/spaln o 76p/a>pspal class="comment">         * block group descriptors, and reserved block groupp/spaln o 77p/a>pspal class="comment">         * descriptor blocks */p/spaln o 78p/a>        pa href="+code=num_clusters" class="sref">num_clustersp/a> = pa href="+code=ext4_num_base_meta_clusters" class="sref">ext4_num_base_meta_clustersp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>); o 79p/a> o 80p/a>        pspal class="comment">/*p/spaln o 81p/a>pspal class="comment">         * For the allocao2o vbitmaps and inode table, we first needp/spaln o 82p/a>pspal class="comment">         * to check to see if the block is in the block group.  If itp/spaln o 83p/a>pspal class="comment">         * is, then check to see if the cluster is already accountedp/spaln o 84p/a>pspal class="comment">         * for in the clusters used for the base metadata cluster, orp/spaln o 85p/a>pspal class="comment">         * if we cal increment the base metadata cluster to includep/spaln o 86p/a>pspal class="comment">         * that block.  Otherwise, we will have to track the clusterp/spaln o 87p/a>pspal class="comment">         * used for the allocao2o vbitmap or inode table explicitly.p/spaln o 88p/a>pspal class="comment">         * Normally all of these blocks are contiguous, so the specialp/spaln o 89p/a>pspal class="comment">         * case handling shouldn't be necessary except for *very*p/spaln o 9t2oa>pspal class="comment">         * unusual file system layouts.p/spaln o 91p/a>pspal class="comment">         */p/spaln o 92p/a>        if (pa href="+code=ext4_block_in_group" class="sref">ext4_block_in_groupp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=ext4_block_bitmap" class="sref">ext4_block_bitmapp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>), pa href="+code=block_group" class="sref">block_groupp/a>)) { o 93p/a>                pa href="+code=block_cluster" class="sref">block_clusterp/a> = pa href="+code=EXT4_B2C" class="sref">EXT4_B2Cp/a>(pa href="+code=sbi" class="sref">sbip/a>, o 94p/a>                                         pa href="+code=ext4_block_bitmap" class="sref">ext4_block_bitmapp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>) - pa href="+code=start" class="sref">startp/a>); o 95p/a>                if (pa href="+code=block_cluster" class="sref">block_clusterp/a> < pa href="+code=num_clusters" class="sref">num_clustersp/a>) o 96p/a>                        pa href="+code=block_cluster" class="sref">block_clusterp/a> = -1; o 97p/a>                else if (pa href="+code=block_cluster" class="sref">block_clusterp/a> == pa href="+code=num_clusters" class="sref">num_clustersp/a>) { o 98p/a>                        pa href="+code=num_clusters" class="sref">num_clustersp/a>++; o 99p/a>                        pa href="+code=block_cluster" class="sref">block_clusterp/a> = -1; o100p/a>                } o101p/a>        } o102p/a> o103p/a>        if (pa href="+code=ext4_block_in_group" class="sref">ext4_block_in_groupp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=ext4_inode_bitmap" class="sref">ext4_inode_bitmapp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>), pa href="+code=block_group" class="sref">block_groupp/a>)) { o104p/a>                pa href="+code=inode_cluster" class="sref">inode_clusterp/a> = pa href="+code=EXT4_B2C" class="sref">EXT4_B2Cp/a>(pa href="+code=sbi" class="sref">sbip/a>, o105p/a>                                         pa href="+code=ext4_inode_bitmap" class="sref">ext4_inode_bitmapp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>) - pa href="+code=start" class="sref">startp/a>); o106p/a>                if (pa href="+code=inode_cluster" class="sref">inode_clusterp/a> < pa href="+code=num_clusters" class="sref">num_clustersp/a>) o107p/a>                        pa href="+code=inode_cluster" class="sref">inode_clusterp/a> = -1; o108p/a>                else if (pa href="+code=inode_cluster" class="sref">inode_clusterp/a> == pa href="+code=num_clusters" class="sref">num_clustersp/a>) { o109p/a>                        pa href="+code=num_clusters" class="sref">num_clustersp/a>++; o110p/a>                        pa href="+code=inode_cluster" class="sref">inode_clusterp/a> = -1; o111p/a>                } o112p/a>        } o113p/a> o114p/a>        pa href="+code=itbl_blk" class="sref">itbl_blkp/a> = pa href="+code=ext4_inode_table" class="sref">ext4_inode_tablep/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>); o115p/a>        for (pa href="+code=i" class="sref">ip/a> = 0; pa href="+code=i" class="sref">ip/a> < pa href="+code=sbi" class="sref">sbip/a>->pa href="+code=s_itb_per_group" class="sref">s_itb_per_groupp/a>; pa href="+code=i" class="sref">ip/a>++) { o116p/a>                if (pa href="+code=ext4_block_in_group" class="sref">ext4_block_in_groupp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=itbl_blk" class="sref">itbl_blkp/a> + pa href="+code=i" class="sref">ip/a>, pa href="+code=block_group" class="sref">block_groupp/a>)) { o117p/a>                        pa href="+code=c" class="sref">cp/a> = pa href="+code=EXT4_B2C" class="sref">EXT4_B2Cp/a>(pa href="+code=sbi" class="sref">sbip/a>, pa href="+code=itbl_blk" class="sref">itbl_blkp/a> + pa href="+code=i" class="sref">ip/a> - pa href="+code=start" class="sref">startp/a>); o118p/a>                        if ((pa href="+code=c" class="sref">cp/a> < pa href="+code=num_clusters" class="sref">num_clustersp/a>) || (pa href="+code=c" class="sref">cp/a> == pa href="+code=inode_cluster" class="sref">inode_clusterp/a>) || o119p/a>                            (pa href="+code=c" class="sref">cp/a> == pa href="+code=block_cluster" class="sref">block_clusterp/a>) || (pa href="+code=c" class="sref">cp/a> == pa href="+code=itbl_cluster" class="sref">itbl_clusterp/a>)) o120p/a>                                continue; o121p/a>                        if (pa href="+code=c" class="sref">cp/a> == pa href="+code=num_clusters" class="sref">num_clustersp/a>) { o122p/a>                                pa href="+code=num_clusters" class="sref">num_clustersp/a>++; o123p/a>                                continue; o124p/a>                        } o125p/a>                        pa href="+code=num_clusters" class="sref">num_clustersp/a>++; o126p/a>                        pa href="+code=itbl_cluster" class="sref">itbl_clusterp/a> = pa href="+code=c" class="sref">cp/a>; o127p/a>                } o128p/a>        } o129p/a> o130p/a>        if (pa href="+code=block_cluster" class="sref">block_clusterp/a> != -1) o131p/a>                pa href="+code=num_clusters" class="sref">num_clustersp/a>++; o132p/a>        if (pa href="+code=inode_cluster" class="sref">inode_clusterp/a> != -1) o133p/a>                pa href="+code=num_clusters" class="sref">num_clustersp/a>++; o134p/a> o135p/a>        return pa href="+code=num_clusters" class="sref">num_clustersp/a>; o136p/a>} o137p/a> o138p/a>static unsigned int pa href="+code=num_clusters_in_group" class="sref">num_clusters_in_groupp/a>(struct pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, o139p/a>                                          pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> pa href="+code=block_group" class="sref">block_groupp/a>) o140p/a>{ o141p/a>        unsigned int pa href="+code=blocks" class="sref">blocksp/a>; o142p/a> o143p/a>        if (pa href="+code=block_group" class="sref">block_groupp/a> == pa href="+code=ext4_get_groups_count" class="sref">ext4_get_groups_countp/a>(pa href="+code=sb" class="sref">sbp/a>) - 1) { o144p/a>                pspal class="comment">/*p/spaln o145p/a>pspal class="comment">                 * Eve vthough mke2fs always initializes the first andp/spaln o146p/a>pspal class="comment">                 * last group, just in case some other tool was used,p/spaln o147p/a>pspal class="comment">                 * we need to make sure we calculate the right freep/spaln o148p/a>pspal class="comment">                 * blocks.p/spaln o149p/a>pspal class="comment">                 */p/spaln o150p/a>                pa href="+code=blocks" class="sref">blocksp/a> = pa href="+code=ext4_blocks_count" class="sref">ext4_blocks_countp/a>(pa href="+code=EXT4_SB" class="sref">EXT4_SBp/a>(pa href="+code=sb" class="sref">sbp/a>)->pa href="+code=s_es" class="sref">s_esp/a>) - o151p/a>                        pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>); o152p/a>        } else o153p/a>                pa href="+code=blocks" class="sref">blocksp/a> = pa href="+code=EXT4_BLOCKS_PER_GROUP" class="sref">EXT4_BLOCKS_PER_GROUPp/a>(pa href="+code=sb" class="sref">sbp/a>); o154p/a>        return pa href="+code=EXT4_NUM_B2C" class="sref">EXT4_NUM_B2Cp/a>(pa href="+code=EXT4_SB" class="sref">EXT4_SBp/a>(pa href="+code=sb" class="sref">sbp/a>), pa href="+code=blocks" class="sref">blocksp/a>); o155p/a>} o156p/a> o157p/a>pspal class="comment">/* Initializes al uninitialized block bitmap */p/spaln o158p/a>void pa href="+code=ext4_init_block_bitmap" class="sref">ext4_init_block_bitmapp/a>(struct pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, struct pa href="+code=buffer_head" class="sref">buffer_headp/a> *pa href="+code=bh" class="sref">bhp/a>, o159p/a>                            pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> pa href="+code=block_group" class="sref">block_groupp/a>, o160p/a>                            struct pa href="+code=ext4_group_desc" class="sref">ext4_group_descp/a> *pa href="+code=gdp" class="sref">gdpp/a>) o161p/a>{ o162p/a>        unsigned int pa href="+code=bit" class="sref">bitp/a>, pa href="+code=bit_max" class="sref">bit_maxp/a>; o163p/a>        struct pa href="+code=ext4_sb_info" class="sref">ext4_sb_infop/a> *pa href="+code=sbi" class="sref">sbip/a> = pa href="+code=EXT4_SB" class="sref">EXT4_SBp/a>(pa href="+code=sb" class="sref">sbp/a>); o164p/a>        pa href="+code=ext4_fsblk_t" class="sref">ext4_fsblk_tp/a> pa href="+code=start" class="sref">startp/a>, pa href="+code=tmp" class="sref">tmpp/a>; o165p/a>        int pa href="+code=flex_bg" class="sref">flex_bgp/a> = 0; o166p/a> o167p/a>        pa href="+code=J_ASSERT_BH" class="sref">J_ASSERT_BHp/a>(pa href="+code=bh" class="sref">bhp/a>, pa href="+code=buffer_locked" class="sref">buffer_lockedp/a>(pa href="+code=bh" class="sref">bhp/a>)); o168p/a> o169p/a>        pspal class="comment">/* If checksum is bad mark all blocks used to prevent allocao2o p/spaln o17t2oa>pspal class="comment">         * essentially implementing a per-group read-only flag. */p/spaln o171p/a>        if (!pa href="+code=ext4_group_desc_csum_verify" class="sref">ext4_group_desc_csum_verifyp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>, pa href="+code=gdp" class="sref">gdpp/a>)) { o172p/a>                pa href="+code=ext4_error" class="sref">ext4_errorp/a>(pa href="+code=sb" class="sref">sbp/a>, pspal class="string">"Checksum bad for group %u"block_groupp/a>); o173p/a>                pa href="+code=ext4_free_group_clusters_set" class="sref">ext4_free_group_clusters_setp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>, 0); o174p/a>                pa href="+code=ext4_free_inodes_set" class="sref">ext4_free_inodes_setp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>, 0); o175p/a>                pa href="+code=ext4_itable_unused_set" class="sref">ext4_itable_unused_setp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>, 0); o176p/a>                pa href="+code=memset" class="sref">memsetp/a>(pa href="+code=bh" class="sref">bhp/a>->pa href="+code=b_data" class="sref">b_datap/a>, 0xff, pa href="+code=sb" class="sref">sbp/a>->pa href="+code=s_blocksize" class="sref">s_blocksizep/a>); o177p/a>                pa href="+code=ext4_block_bitmap_csum_set" class="sref">ext4_block_bitmap_csum_setp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>, pa href="+code=gdp" class="sref">gdpp/a>, pa href="+code=bh" class="sref">bhp/a>); o178p/a>                return; o179p/a>        } o180p/a>        pa href="+code=memset" class="sref">memsetp/a>(pa href="+code=bh" class="sref">bhp/a>->pa href="+code=b_data" class="sref">b_datap/a>, 0, pa href="+code=sb" class="sref">sbp/a>->pa href="+code=s_blocksize" class="sref">s_blocksizep/a>); o181p/a> o182p/a>        pa href="+code=bit_max" class="sref">bit_maxp/a> = pa href="+code=ext4_num_base_meta_clusters" class="sref">ext4_num_base_meta_clustersp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>); o183p/a>        for (pa href="+code=bit" class="sref">bitp/a> = 0; pa href="+code=bit" class="sref">bitp/a> < pa href="+code=bit_max" class="sref">bit_maxp/a>; pa href="+code=bit" class="sref">bitp/a>++) o184p/a>                pa href="+code=ext4_set_bit" class="sref">ext4_set_bitp/a>(pa href="+code=bit" class="sref">bitp/a>, pa href="+code=bh" class="sref">bhp/a>->pa href="+code=b_data" class="sref">b_datap/a>); o185p/a> o186p/a>        pa href="+code=start" class="sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>); o187p/a> o188p/a>        if (pa href="+code=EXT4_HAS_INCOMPAT_FEATURE" class="sref">EXT4_HAS_INCOMPAT_FEATUREp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=EXT4_FEATURE_INCOMPAT_FLEX_BG" class="sref">EXT4_a href="+code=s_blocksiz6">o153p/a>      4_free3_a hrcksiz6">o153p/e=L8918lass="line" namue=L15=L165">o165p/a>        int pa href="+code=flex_bg" sref">inode_clusterp/a> = -1; <inode_clusterp/a> = -1; << href="fsfs/ext4/balloc.c#L91" id1e=L9119class="line" nmue=L169">o169p/a>      SetizessnamueitialiFor the al      *, For the allocaoa per-group read-only flag. */p/spaln <o182>startp/a>, pa href="+codks" class="sref">blocksp/a>   pa href="+code=ext4_block_bitmap" class="sref">ext4_block_bitmapp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+coderef">inode_clusterp/a> = -1; << href="fsfs/ext4/balloc.c#L93" id1e=L9319lass="line" namue=L171">o171p/a>         int pa href="+code=flex_bg||" class="sref">blocksp/a>  (pa href="+code=ext4_block_in_group" class="sref">ext4_block_in_groupp/a>(pa href="+code=sb" class="sr>startp/a>, pa href="+cod+code=i" class="sref">ip/a>, pa href="+code=block_group" claef">inode_clusterp/a> = -1; << href="fsfs/ext4/balloc.c#L94" id1e=L941 class="line" namue=L94">o184p/a>                pa href="+code=ext4_set_bit" class="sref">ext4_ef">cp/a> = pa href="+code=EXT4_B2C" class="sref">EXT4_B2Cp/a>(pa href="+code=sbi" class="sre>startp/a>, pa href="+codkcode=i" class="sref">ip/a> - pa href="+code=stae=bit" class="sref">bitp/a>, pa href="+code=bh" class="sref">bhp/a>->pa href="+code=b_data" class="sref">b_datap/a>); <o185p/a> <o186>startp/a>, pa href="+codks" class="sref">blocks       pa href="+code=ext4_inode_bitmap" class="sref">ext4_inode_bitmapp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+codea" class="sref">b_datap/a>); << href="fsfs/ext4/balloc.c#L97" id1e=L9719class="line" namu=L171">o171p/a>         int pa href="+code=flex_bg||" class="sref">blocksp/a>  (pa href="+code=ext4_block_in_group" class="sref">ext4_block_in_groupp/a>(pa href="+code=sb" class="sr>startp/a>, pa href="+cod+code=i" class="sref">ip/a>, pa href="+code=block_group" claef">inode_clusterp/a> = -1; << href="fsfs/ext4/balloc.c#L98" id1e=L981 class="line" namue=L94">o184p/a>                pa href="+code=ext4_set_bit" class="sref">ext4_ef">cp/a> = pa href="+code=EXT4_B2C" class="sref">EXT4_B2Cp/a>(pa href="+code=sbi" class="sre>startp/a>, pa href="+codkcode=i" class="sref">ip/a> - pa href="+code=stae=bit" class="sref">bitp/a>, pa href="+code=bh" class="sref">bhp/a>->pa href="+code=b_data" class="sref">b_datap/a>); <      4fs/ext4/balloc.c#L99" id1e=L9919lass="line" namue=L129">o129p/a> 2a href="f2/ext4/balloc.c#L100" ide2L100"20lass="line" namue=L180">o180>startp/a>, pa href="+codks" class="sref">blocks       pa href="+code=ext4_inode_table" class="sref">ext4_inode_tablep/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=gdp" class="sref">gdpp/a>); 2a href="f2/ext4/balloc.c#L101" ide2L101"2class="line" namue=x" class="sref">b>startp/a>, pa href="+codk=bit" class="sref">blocks       pa href="+code=ext4_inode_table" class="sref">ext4_inode_tablep/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code +gdp" class="sref">gdpp/a>); 2a2href="f2/s/ext4/balloc.c#L92" id2L102"20lass="line" namue=L122">o1 class="sref">EXT4_B2Cp/a>(pa href="+code=sbi" class="sref">sbip/a>->pa href="+code=s_itb_per_group" class="sref">s_itb_per>startp/a>, pa href="+cod+code=i" class="sref">ip/a>++) { 2a href="f2/ext4/balloc.c#L103" ide2L103"20lass="line" namue=L17namu=L171">o171p/a>         int pa href="+code=flex_bg||" class="sref">blocksp/a>  (pa href="+code=ext4_block_in_group" class="sref">ext4_block_in_groupp/a>(pa href="+code=sb" class="sr>startp/a>, pa href="+cod+code=i" class="sref">ip/a>, pa href="+code=block_group" claef">inode_clusterp/a> = -1; 2a href="f2/ext4/balloc.c#L104" ide2L104"2class="line" namue=L10namue=L94">o184p/a>                pa href="+code=ext4_set_bit" class="sref">ext4_ef">cp/a> = pa href="+code=EXT4_B2C" class="sref">EXT4_B2Cp/a>(pa href="+code=sbi" class="sre>startp/a>, pa href="+codkcode=i" class="sref">ip/a> - pa href="+code=stae=bit" class="sref">bitp/a>, pa href="+code=bh" class="sref">bhp/a>->pa href="+code=b_data" class="sref">b_datap/a>); 2a href="f2/ext4/balloc.c#L105" ide2L105"2class="line" namue=L179">o179p/a>        } 2a href="f2/ext4/balloc.c#L106" ide2L106"20lass="line" namue=L166">o166p/a> 2a href="f2/ext4/balloc.c#L107" ide2L107"2class="line" n4">o144p/a>                pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L108" ide2L108"20class="line" namue=L88">o 88p/a>pspal Also    * iss="commentf checkwiths="commng">&qis lesgh mas used to prevent allocao2o p/spaln 2a href="f2/ext4/balloc.c#L109" ide2L109"20class="line" namue=L89">o 89p/a>pspal  to see iksizal 8 ( whichpal clasksizaentfes al ae=setlocks in the block group.  If itp/spaln 2a href="f2/ext4/balloc.c#L110" ide2L110"21lass="line" namue=L170">o17t2oa>pspal o        * tofes al to 1 in the block group.  If itp/spaln 2a href="f2/ext4/balloc.c#L111" ide2L111"21class="line" namue=L91">o 91p/a>pspal class="comment">         */p/spaln 2a href="f2/ext4/balloc.c#L112" ide2L112"21lass="line" namue=L182">o182ext4_ent"et" clasenpa href="+code=bext4_ent"et" clasenp_B2C" class="sref">Ensigned int pa href="+code=num_clusters_in_group" class="sref"4_group_first_block_nop/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" cllass="sref">block_groupp/a>, 2a href="f2/ext4/balloc.c#L113" ide2L113"21lass="line" namue=L123">o123p/a>  lass="sref">b_datap/a>, 0, pa href="+code=sb" class="sref">sbp/a>->pa href="+code=s_blocksize" cal 8e=bit" class="sref">bitp/a>, pa href="+code=bh" class="sref">bhp/a>->pa href="+code=b_data" class="sref">b_datap/a>); 2a href="f2/ext4/balloc.c#L114" ide2L114"2class="line" namue=L114">o114            pa href="+code=ext4_block_bitmap_csum_set" class="sref">ext4_block_bitmap_csum_setp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>, pa href="+code=gdp" class="sref">gdpp/a>, pa href="+code=bh" s="sref">b_datap/a>); 2a href="f2/ext4/balloc.c#L115" ide2L115"21class="line" namue=L55">o 55p/a>       y" class="e=ext4_get_group_no_and_     y" class="e=e>ext4_block_bitmap_csum_setp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>, pa href="+codode=bh" s="sref">b_datap/a>); 2a href="f2/ext4/balloc.c#L116" ide2L116"21lass="line" namue=L136">o136p/a>} 2a href="f2/ext4/balloc.c#L117" ide2L117"21lass="line" namue=L187">o187p/a> 2a href="f2/ext4/balloc.c#L118" ide2L118"21class="line" namue=L88">o 82p/a>pspal class="commendes_tf checks="a see if the bloctpal sum iwhes used to prevent allocao2o p/spaln 2a href="f2/ext4/balloc.c#L119" ide2L119"21class="line" namue=L89">o 89*       * tofes al al somment">/* Ithesess="co    * c     " cla      itr file system metadata; thisp/spaln 2a href="f2/ext4/balloc.c#L120" ide2L120"22lass="line" namue=L170">o17t*heck to ses al a per-group read-only flag. */p/spaln 2a href="f2/ext4/balloc.c#L121" ide2L121"2class=="line" namue=L65">o 65p/a>undes_sin_group"afrouk_bitxt4_get_group_no_anddes_sin_group"afrouk_bit>ext4>num_clusters_in_groupp/a>(struct pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, 2a href="f2/ext4/balloc.c#L122" ide2L122"2class="line" namue=L122">o122p/a>     "line" namue=L55">o 55p/a>        pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> pa href="+code=block_group" class="sref">block_groupp/a>, 2a href="f2/ext4/balloc.c#L123" ide2L123"2class="line" namue=L123">o123p/a>                                       struct pa href="+code=ext4_group_desc" class="sref">ext4_group_descp/a> *pa href="+code=gdp" class="sref">gdpp/a>) 2a href="f2/ext4/balloc.c#L124" ide2L124"2class=e=i" class="sref">ip/a>++) { 2a href="f2/ext4/balloc.c#L125" ide2L125"22lass="line" namue=L135">o135p/a>        return pa href="+code=num_clusters_in_group" class="sref"4_group_first_block_nop/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" clkco=i" class="sref">ip/a>++) { 2a href="f2/ext4/balloc.c#L126" ide2L126"2class="line" namue=L12                    signed pa href="+code=ext4_num_overhead_clusters" class="sref">ext4_block_bitmap_csum_setp/a>(pa href="+code=sb" class="sref">sbp/a>, pa href="+code=block_group" class="sref">block_groupp/a>, pa href="+codode=bh" s="sref">b_datap/a>); 2a href="f2/ext4/balloc.c#L127" ide2L127"2class="line" namue=L136">o136p/a>} 2a href="f2/ext4/balloc.c#L128" ide2L128"22lass="line" namue=L168">o168p/a> 2a href="f2/ext4/balloc.c#L129" ide2L129"22class="line" namue=L89">o 8     pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L130" ide2L130"23lass="line" namue=L170">o17t*hTmke2es_tf checkrmalmanags the       *bloAcomment">        ains=sers"re contiguous, so the specialp/spaln 2a href="f2/ext4/balloc.c#L131" ide2L131"23class="line" namue=L91">o 91"commentf the *bloEachmng">&q    ains=1ofes al   * toamueitials,=1ofes al contiguous, so the specialp/spaln 2a href="f2/ext4/balloc.c#L132" ide2L132"23class="line" namue=L82">o 82*   * toamueet" cl, Ncommentf="commenthe allocaoaFor cal iomment">                 * blocks.p/spaln 2a href="f2/ext4/balloc.c#L133" ide2L133"23class="line" namue=L83">o 83    pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L134" ide2L134"23class="line" namue=L84">o 84*hTmke2mment">        ains="comment">        whichprmall blos tafrouomme   pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L135" ide2L135"23lass="line" namue=L145">o145*ber ofs="commenEachmclass="comm    ains= class="commen to ses aleitialiFor   pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L136" ide2L136"23lass="line" namue=L146">o146*     2es_tf check" cla eck to see imenTmkent">        rmall ad162"> memory   pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L137" ide2L137"23lass="line" namue=L147">o147*iwhes"a 2mment">    al m the c (    o_anddill_er of)">                 * blocks.p/spaln 2a href="f2/ext4/balloc.c#L138" ide2L138"23class="line" namue=L88">o 88 per-group read-only flag. */p/spaln 2a href="f2/ext4/balloc.c#L139" ide2L139"23lass="line" namue=L129">o129p/a> 2a href="f2/ext4/balloc.c#L140" ide2L140"24lass="line" namue=L170">o17/*    pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L141" ide2L141"24class="line" namue=L91">o 91"c4_grou_count" sc" c(lkc-ll ad="comment">       2eom disk   pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L142" ide2L142"24class="line" namue=L82">o 82* @sb:3p/a>             r ofs="com   pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L143" ide2L143"24class="line" namue=L83">o 83  @=block_grou:3p/a>   gimmensee if the    pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L144" ide2L144"24class="line" namue=L84">o 84*h@bh:3p/a>            poinment th to sffer_  cla">      ek to see i   pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L145" ide2L145"2class="line" namue=L145">o145*">o123p/a>            "comment">         pspal class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L146" ide2L146"2class="line" namue=L146">o146 per-group read-only flag. */p/spaln 2a href="f2/ext4/balloc.c#L147" ide2L147"2class=                           struct pa href="+code=ext4_group_desc" class="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(struct pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, 2a href="f2/ext4/balloc.c#L148" ide2L148"24lass="line" namue=L118">o118ppppppppppppppppppppppnamue=L55">o 55p/a>        pa href="+code=ext4_group_t" class="sref">ext4_group_tp/a> pa href="+code=block_group" class="sref">block_groupp/a>, 2a href="f2/ext4/balloc.c#L149" ide2L149"24lass="line" namue=L139">o139p/a>                61"comment">/* If checkp_tp/a> pa href="+code=block_grou3134code=sb" 2L13429">o149p/a>pspal class="2ommen25ass="sref">block_groupp/a>) sbp/a>)->pa href="+2ode=s25line" namue=L140">o140p/a>{ sbp/a>2 pa href="+code=block_gr2up" c2ass="sref">blo140">o140p/a>{ o152p/a>c.c#L148" ide2L148"24lass="line" namue=L118">o118ppppppppppppppppppppppnamnf2/ext25" ide2L125"22lf2/extoc.c#L100" ide2L100"20lass=43p/a>        if (pa href="+code=block_group" class="sref">block_groupp/a> == pa href="+code=exta href="+code=block_group" clafock_grou:OCKS_PER_GROUPp/a>(pa hr2f="+c2de=sb" class="/balloc.c#L123" ide2L123"2class="line" namue=L123">o123p/a>                             line" namue=L123">olass="s=a href="+code=block_group" claf to sffer">sbp/a>), pa href="+cod2=bloc255=sb" class="/balloc.c#L123" ide2L123"2cext4/balloc.c#L163" ide=L163" class="line" namue=L163">o163p/a>        struct pa href="+code=ext4_sb_info" class="sref">ext4_sb_infop/a> *pa href="+code=sbi" class="sref">sbip/a> = pa href="+code=EXT42="fs/ext42balloc.c#L155" ide=L155"2class2"line" namue=L155">o155p/a>} b_ppppppppppppnamue=L55">o 55p/a>        pa href="+code=ex hreflass="line" namue=f2/ext25" ide2L125"22lf2/extoc.ccode=s_itb_per_group" class="srelass="com2ent">/* Initializes al u2initi25ef">inode_clusterp/a> = -1; << href="fsfsxt4/balloc.c#L172" ide=L172" class="line" namue=L172">o172p/a>                pa href="+code=ext4_erro href="+cod hreflaroup" class= -  href="+cod =rrorp/a,>(pa href="+ce=s_itb_per_group" class="srelroup_tp/af">buffer_headp/a> *pa h2ef="+2ode=bh" class="sref">bhp/a>, (pa href="+code=sb" class="sref">sbp/a>, pspal class="string">"Chode=sb" class="sr=f2/ext25" ide2L125"22lf2/extoc.ccsbip/a> = pa href="+code=EXT42group_tp/2> pa href="+code=block_g2oup" 26ef">inode_clusterp/a> = -1; <ex24_group_descp/a> *pa hre2="+co26s" class="sref">s_espef">ip/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=a href="+code=block_group" cla="fs/ext42balloc.c#L161" ide=L161"2class2"line" namue=L s="sref">b_datap/a>); 2a hrefass="sref2>bitp/a>, pa href="+code2bit_m26mue=L112">o112p/a>        } EXT4_SBp/a>(pa hr2f="+c2de=sb" class="sref">sbp/a>); struct pa href="+code=extesc" class="s= href="+code=ext4_ue=L55">o 55p/a>        pa href="+code=ex hrefhrefref="+code=ext4_sb_inDESCe=blo="+co_BITS" class="sref">ext4_DESCe=blo="+co_BITS_infop/a> *pa href="+code=sbi" class="sref">sbip/a> = pa href="+code=EXT42rt" class2"sref">startp/a>, pa hre2="+co26e=bh" s="sref">b_datap/a>); offoc.c#L115" ide2L11offoc.="s= href="+code=ext4_ue=L55">o 55p/a>        pa href="+code=ex hamp;87">o187p/a> ext4_DESCe=blo="+co_infop/a> *pa href="+code=sbi" class="sref">4_getsbip/a> = pa href="+code=EXT42r"fs/ext42  int pa href="+code=fle2_bg" 266 class="sref">b_ { 2a href="f2/e/ext4/balloc.c#L92" id2L102"20lass="line" namuestruct pa href="+code=exts/a>            [sref">sbp/a>); struct pa href="+code=extesc" class="s=]code=s_itb_per_group" class="sref="fs/ext2/balloc.c#L166" ide=L1662 clas26ss="sref">s_blocksizep/a>); o172p/a>                pa href="+code=ext4_erroGde2L141"24class=notue=L146"- >(pa href="+ce=s_itb_per_group" class="sress="sref"2buffer_lockedp/a>(pa hre2="+co26de=sb" class="sref">sbp/a>, 2a h   pa href="+code=ext4_erro href="+cod =rrorp/a, esc" class =rrorp/a, lass =rrorp/a>(pa href="+coe=s_itb_per_group" class="sresroup_tp/a/balloc.c#L168" ide=L1682 clas26de=bh" class="sref">bhp/a>, ext4_block_bitmap_csum_setp/a>(pa href="+code=struct pa href="+code=extesc" class="s=>(pa href="+code=offoc.c#L115" ide2L11offoc.="s=tsbip/a> = pa href="+code=EXT42 If check2um is bad mark all block2 used27ass="sref">block_grouef">ip/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=a href="+code=block_group" cla     * es2entially implementing a 2er-gr2up read-only f s="sref">b_datap/a>); 2a href="sref">b2ock_groupp/a>, pa href="2code=27s" class="sref">blocksp/a>; o152p/a>c.c#L148" ide2Lline" namue=L123">olass="s= =r"sref">block_groupp/a> 23"2class="line" namue=L123">o123p/a>              )(ass="sref">blocksp/a>; sbp/a>, pa href="+2ode=g2p" class="sref">gdpp/a="line" namue=L1__u8" namue=L123">o__u8      ){ 2a href="f2/e/ext4/balloc.c#L92" id2L102"20lass="line" namuestruct pa href="+code=exts/a>            [sref">sbp/a>); struct pa href="+code=extesc" class="s=] href="+code=s_blocksize" cal 8e=bit" class="sref">_inode_tablep/a>(pa href="+codeb" class=2sref">sbp/a>, pa href="+2ode=g2p" class="sref">gdpp/a>, 0); tsbip/a> = pa href="+code=EXT42 "fs/ext42sref">sbp/a>, pa href="+2ode=g276 class="sref">b_   61"comment">/* If checkp_tp/a> pa href="+code=block_grou3134code=sbp/a>-&g2;pa href="+code=s_blocks2ze" c2ass="sref">s_blocksize    61"comment">/* If checkp_tp/a> pa h href="+code=ext4_/ext4/balloc.c#L92" id2L102"20lass="line" namuestruct pa href="+code=exts/a>            [sref">sbp/a>); struct pa href="+code=extesc" class="s=]sbip/a> = pa href="+code=EXT42 s="sref"2ss="sref">gdpp/a>, pa hr2f="+c2de=bh" class="ef">ip/a>++) { 2a hrefline" namue=L123">olass="s=a href="+code=block_group" cla8" ide=L128" class="line" namue=L128">o128p/a>  s="sref">b_datap/a>); 2a href4/balloc.2#L179" ide=L179" class="2ine" 28ef">inode_clusterp/a> = -1; <-&g2;pa href="+code=s_blocks2ze" c28l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L129" ide2Lf="fs/ext2/balloc.c#L181" ide=L1812 clas28l class="comment">/*p/spaln 2a href="f2/e3" idess="linass="le=L1discue=L="lineb2L13valid, ss=0f">a href="f2/ext4/balloc.c#L129" ide2Lf;/*p/spaln 2a href="f2/ext4/ballovalid" namue=L147">o147*iwhes"a 2mment">  class="sr2f">bit_maxp/a>; pa href=2+code28l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L146" ide2L1ss="sref"2bhp/a>->pa href="+cod2=b_da2a" cla" namuelock_groupp/a> 23"2cef="fs/ext4/balloc.c#L164" ide=L164" class="line" namu164" valid="line" namue=L182">o182>startp/avalid="line" namue="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(struct pa href="+code=super_block" f="fs/ext2/balloc.c#L185" ide=L1852 clas28="sref">num_clustersp/a>++; <<<<<<<<<<<<<<<<<<<<o123p/a>                             line" namue=L123">olass="s=t pa href="+code=super_block" fbp/a>-&g2 pa href="+code=block_gr2up" c28ss="sref">s_blocksizeeeeeeeeeeeeeeeeeeeeeeeeeeeee140">o140p/a>{ o 55p/a>        pa href="+code=ext4_group_t" class="sref">ext4_f="fs/ext2/balloc.c#L187" ide=L1872 clas28de=sb" class="sref">sbp/a>, 2a href="f2/ext4/ballpa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, strucref="+code=block_grou3134code=RE_INCOMP2T_FLEX_BG" class="sref">2XT4_a2href="de=s_itb_per_group" class="srep/a>     2  int pa href="+code=fle2_bg" 29"line" namue=L129">o129p/a> 123p/a>p="fs/ext4/balloc.c#L164" a>p="fs/4" class="line" namuoffoc.c#L115" ide2L11offoc.="s=a href="+code=block_group" claef="1fs/e2t4/balloc.c#L90" id1e=L921 cla2sef">inode_clus129">o129p/a> 123p/a>p="fs/ext4/balloc.c#L164" a>p="fs/4" class="line" namun164_zeroc#L104" ide2L104"2cn164_zeroc#L1="s=a href="+code=block_group" clae="fs/ext2    *, For the allocaoa 2er-gr2up read-only flag. */p/spaln 23"2cef="fs/ext4/balloc.c#L164" ide=L164" class="line" namue=L5p/a>        pa hk="s=a href="+code=block_group" clae;sbp/a>, pa href2"+cod29152">o152p/a>c.c#L148" ide2L148"2ef="fs/ext4/balloc.c#L164" ide=L164" class="line" namu+code=start" clashref="+code=extesc" cstart" clas="s=a href="+code=block_group" claelass="sr2 pa href="+code=block_gr2up" c29="sref">num_clustersp/a>++; ->pa href="+cod2=b_da29=tmp" class="s187">o187p/a> o188p/a>        if (pa href="+code=EXT4_HAS_INCOMPAT_FEATURE" class="sref">EXT4_HAS_INCOMPAT_FEATUREp/a>(pa href="+code=sb" class="sref">sbp/ode=s_itb_per_group" class="sreef="1fs/e2t4/balloc.c#L95" id1e=L9219las29=i" class="sref">ip/a> namue=L187">o187p/a> 2a8"20 s="sref,ide2L132"2/f="f2/ext4/bss="linef="+coref="f2/ext4/balloc.c#L146" ide2L1e=sb" cla2s="sref">sbp/a>, pa href2"+cod29other tool was used,p/spaln o169a8"=L16e skipped32" ideos="line"*       * tofes al al somment">/* Ithss="sref"2bhp/a>->pa href="+cod2=b_da29           * blocks.p/spaln /* It3    4fs/e3t4/balloc.c#L99" id1e=L9319las30 block group.  If itp/spaln 2a href="fs/ext4/ ine" namue=Line171p/amue=y ine"oc." namue=L147">o147*iwhes"a 2mment"> 3e=sb" cla3s="sref">sbp/a>, pa href3"+cod30 block group.  If itp/spaln 2a href="fs/ext4/a href="f2/ext4/balloc.c#L146" ide2L3=sb" clas3="sref">sbp/a>, pa href=3+code3+gdp" class="sref">gdpef">ip/" class="line" namue=L165">o163f">s_itb_3er>startp/a>, pa href="+3od+co3e=i" class="sr s="sref">b_datap/a>); 2a hre3ef">ip/a>3 pa href="+code=block_gr3up" c30e=sb" class="sref">sbp/a>); structstart" clashref="+code=extesc" cstart" clas="s=6" ide=L186" class="line" namue=L186">o186p/a>        pa href="+code=start" class="sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr3ss="sref"3bhp/a>->pa href="+cod3=b_da30" class="sref">b_datap/a>); <o187p/a> 2axt4/b wheline"f="f2/ext4/ba3" idess="linise=L89/a href="f2/ext4/balloc.c#L146" ide2L3=7balloc.3#="sref">sbp/a>, pa href320las30"line" namue=L166">o166p/a> e=L5p/a>        pa hk="s=.c#L92" id1e=L9219lass="line" namue=L182">o182>startp/a>, pa href="+codks" class="sref">blocksp/a>   pa href="+code=ext4_block_line" namue=L123">olass="s=>(pa href="+code=sb" class="sr3s8balloc.3#pa href="+code=block_gr3   ps308line" namue=L166">o166p/a> offoc.c#L115" ide2L11offoc.="s= href="+code=ext4_ueL5p/a>        pa hk="s=.">EXT4_B2Cp/a>(pa+code=start" clashref="+code=extesc" cstart" clas="s=a href="+code=block_group" cl3 checkwit3s="commng">&qis lesgh ma3 used309tmp" class="s187 */p/spaln sbp/a>->pa href="+code=s_blocksize" cal 8e=bit" class="sref">bref="+code=block_grou3134code3hpal clas3sizaentfes al ae=setlock3 in t31>                 */p/ namue=L187">o187p/a> 2a"sre ide=L157" class="line" namue=L157">o157p/a>pspal 3t2oa>pspa3 o        * tofes al to 3 in t31s" class="sref">s_espef">ip/a>++) { 2a hrefe=L5p/a>        pa hk="s=a href="+code=block_group" cl3ss="line"3namue=L91">o 91p/a>pspal3class31s" class="sref">blocksp/a>; sbp/a>3 pa href="+code=block_gr3up" c3lass="sref">blL namue=L187">o187p/a> 2axt4/b wheline"de2L132"23ext4/ba3" idess="linise=L89/a href="f2/ext4/balloc.c#L146" ide2L3ss="sref"3bhp/a>->pa href="+cod3=b_da3a" class="sref">b_datap/a>); e=L5p/a>        pa hk="s=.c#L92" id1e=L9219lass="line" namue=L186">o186>startp/a>, pa href="+codks" class="sref">blocks       pa href="+code=ext4_inode_line" namue=L123">olass="s=>(pa href="+code=sb" class="sr3e=gdp" cl3ss="sref">gdpp/a>, pa hr3f="+c3de=bh" s="sref">b_datap/a>); offoc.c#L115" ide2L11offoc.="s= href="+code=ext4_ueL5p/a>        pa hk="s=.">EXT4_B2Cp/a>(pa+code=start" clashref="+code=extesc" cstart" clas="s=a href="+code=block_group" cl3ss="sref"3block_groupp/a>, pa href3"+cod316 class="sref">b_ { 2a href="f2/eef="ftes.c#L104" ide2L104"2class=tes.c#L1+codks" class="sref"offoc.c#L115" ide2L11offoc.="s=ef="+code=sb" class="sref">sbp/a>->pa href="+code=s_blocksize" cal 8e=bit" class="sref">bref="+code=block_grou3134code3h7balloc.3balloc.c#L116" ide2L116"31lass31ss="sref">s_blocksizep namue=L187">o187p/a> 2a"sre ide=L157" class="line" namue=L157">o157p/a>pspal 3t8balloc.3/balloc.c#L117" ide2L117321las31e=bh" class="sref">bhp/a>);/a>++) { 2a hrefe=L5p/a>        pa hk="s=a href="+code=block_group" cl3scheckwit3if the bloctpal sum iwhe3 used31p read-only flag. */p/spaln 2a hr3esess="co3   * c     " cla      it3 file320ss="sref">blL namue=L187">o187p/a> 2axt4/b wheline"de2L132"23class=3" idess="linise=L89/a href="f2/ext4/balloc.c#L146" ide2L3namue=L173">o17t*heck to ses al a 3er-gr32ef">inode_clus129">o129p/a> e=L5p/a>        pa hk="s=.c#L92" id1e=L9219lass="line"class="sref">b>startp/a>, pa href="+codk=bit" class="sref">blocks       pa href="+code=ext4_inodline" namue=L123">olass="s=>(pa href="+code=sb" class="sr3class="sr3f">super_blockp/a> *pa h3ef="+32p read-only flag. */p/spaln offoc.c#L115" ide2L11offoc.="s= href="+code=ext4_ueL5p/a>        pa hk="s=.">EXT4_B2Cp/a>(pa+code=start" clashref="+code=extesc" cstart" clas="s=a href="+code=block_group" cl3group_tp/3> pa href="+code=block_g3oup" 32152">o152p/a>c.c#L148" ide2Ln164_zeroc#L104" ide2L104"2cn164_zeroc#L1="s=.c#L92" id1e=L9219lass=find_n164_zeroc#L104" ide2L104"2class=find_n164_zeroc#L1codk=bit" class="sre="line" namue=L180">o180p/a>        pa href="+code=memset" class="sref">mem href="+code=block_group" cl3gs="sref"34_group_descp/a> *pa hre3="+co32ef">inode_clusterp/a> = -1; 2d-only flag. */p/spaln offoc.c#L115" ide2L11offoc.="s= +ref="+code=ext4_sb_info" class="sref">ext4_sb_infop/a> *pa href="+code=sbi" class="sref">02"20lass="line" namue=L122">o1 class="sref">EXT4_B2Cp/a>(pa href="+cm href="+code=block_group" cl3g=gdp" cl3balloc.c#L124" ide2L124"3class32" class="sref">gdpp/a = -1; 2d-only flag. */p/spaln offoc.c#L115" ide2L11offoc.="s=>(pa href="+code=sb" class="sr3cs="sref"3a href="+code=block_grou3" clk326 class="sref">b_   61"comment">n164_zeroc#L104" ide2L104"2cn164_zeroc#L1="s=.de2L101"2class="lineoffoc.c#L115" ide2L11offoc.="s= +ref="+code=ext4_sb_info" class="sref">ext4_sb_infop/a> *pa href="+code=sbi" class="sref">02"20lass="line" namue=L122">o1 class="sref">EXT4_B2Cp/a>(pa href="+cref="+code=block_grou3134code3ss="sref"3block_groupp/a>, pa href3"+cod32ss="sref">s_blocksizep namue=L187">o187p/a> 2a"sre 57" cl"f2/ext4/3classs9/a href="f2/ext4/balloc.c#L146" ide2L3n8balloc.3balloc.c#L127" ide2L127"3class32e=bh" class="sref">bhp/a>);/a>++) { 2a hrefe=L5p/a>        pa hk="s=a href="+code=block_group" cl3f="f2/ext3/balloc.c#L128" ide2L128322las329tmp" class="ef">ip/" class="line" namue=L165">o163129"22cla3s="line" namue=L89">o 8 3   ps3al cla s="sref">b_datap/a>); 2a hre3 *bloAcom3ent">        ains=sers"r3 cont33ss="sref">s_blocksizep/a>); oe="line" namue=L182">o182>startp/avalid>oe="line" namue="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(struct pa href="+code=super_block"3"commenth3 allocaoaFor cal iomment3>    33ass="sref">block_groupp/a>, 2a href=/balloc.c#L123" ide2L123"2class="line" namue=L123">o123p/a>                             line" namue=L123">olass="s=t pa href="+code=super_block"3133"23cla3s="line" namue=L83">o 833   ps33ef">inode_clusterp/a> = -1; 2d-only 140">o140p/a>{ o 55p/a>        pa href="+code=ext4_group_t" class="sref">ext43        w3ichprmall blos tafrouomm3   ps33" class="sref">gdpp/a = -1; 2d-only pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, strucref="+code=block_grou3134code3= class="3ommen to ses aleitialiFo3   ps3al clade=s_itb_per_group" class="sr3mkent">  3     rmall ad162"> memor3   ps33"line" namue=L166">o166p/a> 148"2ef="fs/ext4/balloc.c#L164" ide=L164" clue=L166">o166p/a> e=L5p/a>        pa hk="s=a href="+code=block_group" cl3  al m th3 c (    o_anddill_er of)3>    33line" namue=L136">o136p/a>} 2a hr338"23clas3="line" namue=L88">o 88 3er-gr339tmp" class="s187="+code=super_block" c171p/ies="sref">super_blockp/a171p/iescodk=bit" class="sre="line" namue=L180">o18bref="+code=block_grou3134code3f="f2/ext3/balloc.c#L139" ide2L139323las34ass="sref">block_grouef">ipa href="+code=block_group" cl340"24lass3"line" namue=L170">o17/*3   ps34ss="sref">s_blocksizep/a>);        2eom dis3   ps34p read-only flag. */p/spaln 23"2ct4/b5">o 55p/a>        pa23"2ct4/b5">o 5sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr32* @sb:3p3a>             r ofs="co3   ps34152">o152p/a>c.c#L148" ide2Le=L5p/a>        pa hk="s=.c#L92" id1e=L9219lass=valid="line" namue=L182">o182>startp/avalid="line" namue="s="bit" class="sref">blocks       pa href="+code=ext4_inodline" namue=L123">olass="s=ode=sb" class="sref">sbp/a>, pspal class="string">"Chode=sb" class="srock_group" class="sref">block_groupp/a>, pa href="+co3lock_grou33p/a>   gimmensee if the3   ps344tmp" class="s187="+code=super_bunlikelyk_group" class=unlikelycodk=bit" class="sre==L5p/a>        pa hk="s=.!= 0p/ode=s_itb_per_group" class="sr3h to sffe3_  cla">      ek to see 3   ps34" class="sref">gdpp/a>, 0); o 55p/a>        pa23"2cunl4/b5">o 5sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr32 class="3         "comment">     3   ps34=i" class="sref">ip/a>++) { 2a href="f2/ext4/balloc.c#L172" ide=L172" class="line" namue=L172">o172p/a>                pa href="+code=ext4_erro grrorp/a:=3" iderorp/lla:=13valide ide=L157" c>(pa href="+coe=s_itb_per_group" class="sr346"2class3"line" namue=L146">o146 3er-gr34ss="sref">s_blocksizeeeeeeeeeeeee=sb" class="sref">sbp/a>, pspal class="string">"Chode=sb" class="sro=L5p/a>        pa hk="s=>(pa href="+code=sb" class="sr32 al m th3f">super_blockp/a> *pa h3ef="+3ode=sb" class="sref">sef">ipa href="+code=block_group" cl348"23clas3> pa href="+code=block_g3oup" 3lass="sref">bl s="sref">b_datap/a>); 2a hre3sb" 2L13439">o149p/a>pspal class="3ommen350tmp" class="s187="+code=super_bunlikelyk_group" class=unlikelycodk= { 2a href="f2/eef="fs="line" namue=L11171p/a=L182">o182>startp/a>, pa href="ue=L11171p/asref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/aoe=s_itb_per_group" class="sr3lass="sre3">sbp/a>)->pa href="+3ode=s35s" class="sref">s_espeeeeeeeee=sb" class="srline" namue=L123">olass="s=ode=sb" class="sre"line" namue=L180">o18br/ode=s_itb_per_group" class="sr3f">sbp/a>3 pa href="+code=block_gr3up" c35gdp" class="sref">gdp>, 0); o 55p/a>        pa23"2cunl4/b5">o 5sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr3f* @sb:3p3" ide=L152" class="line"3namue35ass="sref">block_grou>++) { 2a href="f2/ext4/balloc.c#L172" ide=L172" class="line" namue=L172">o172p/a>                pa href="+code=ext4_erro grrorp/a:=3sre ide=L157" clxt4/b=L1>(pa href="+code=sb" class="sref">sbp/a>, pspal class="string">"Ch>(pa href="+code=sb" class="sr3fock_grou3OCKS_PER_GROUPp/a>(pa hr3f="+c35ef">inode_clusterp/a>ef">ipa href="+code=block_group" cl3f to sffe3">sbp/a>), pa href="+cod3=bloc355=sb" class=" s="sref">b_datap/a>); 2a hre3s class="3balloc.c#L155" ide=L155"3class35"line" namue=L185">o185p/a> "lineock" c171p/ies="sref">super_b"lineock" c171p/iescodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl3f6"2class3/balloc.c#L156" ide=L1563 clas35"line" namue=L166">o166p/a> 148"2unl4/b5">o 55p/a>        pa23"2cunl4/b5">o 5sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr3f al m th3ent">/* Initializes al u3initi35ef">i s="sref">b_datap/a>); 2a hre3s8"23clas3f">buffer_headp/a> *pa h3ef="+35p read-only flag. */p/spaln 2a hr3group_tp/3> pa href="+code=block_g3oup" 36"line" namue=L129">o129p/a> 2a href="f2/ext4/balloc.c#L140" ide2L3"sref">ex34_group_descp/a> *pa hre3="+co36l class="comment">/*p/spaln 2a hrefrss=a>, pa href="() href="f2/ext4/balloc.c#L140" ide2L3"">sbp/a>3balloc.c#L161" ide=L161"3class36l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L142" ide2L142"24class="line" namue=L82">o 3ass="sref3>bitp/a>, pa href="+code3bit_m36l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L143" ide2L143"24class="line" namue=L83">o 83  @=3SB" class3"sref">EXT4_SBp/a>(pa hr3f="+c36l class="comment">/*p/spaln 2"24class="line" namue=L83">o 83  @=3S to sffe3"sref">startp/a>, pa hre3="+co36l class="comment">/*p/spaln 2aRss="lhref57" cl"f2/ac.c#L143" id"f2/ex,="livalid>oe 84*hTmke2mment">        ains="comment"3r"fs/ext43  int pa href="+code=fle3_bg" 36l class="comment">/*p/spaln 2a 89*ne" namue=/132"2/ext4/3classs9ine"oc.a href="f2/exts       * tofes al al somment">/* It3f="fs/ext3/balloc.c#L166" ide=L1663 clas36l class="comment">/*p/spaln 2       * tofes al al somment">/* It3f al m th3buffer_lockedp/a>(pa hre3="+co36           * blocks.p/spaln 2a href="lockp/a> *p onc.ccce=L8" nNULLa hrcasss="lfailure" namue=L147">o147*iwhes"a 2mment"> 3sroup_tp/3/balloc.c#L168" ide=L1683 clas36o prevent allocao2o p/spaln 2a href="f2/ext4/balloc.c#L146" ide2L3 If check3um is bad mark all block3 used37ass="pa href="+code=super_block" class="sref">super_blockp/a> *pa hreff2/ext4/balloc.c#L146" ide2L3 sref">ex3entially implementing a 3er-gr3up reaL166">o166p/a> 148"2rss=a>, pa href="_nowaL104" ide2L104"2class=rss=a>, pa href="_nowaL1="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structoc.c#L148" ide2L148"24lass="line" namue=L118">o118ppppppppppppppppppppppnamue=L55">o 55p/a>        pa href="+code=exref="+code=block_grou3134code3="sref">b3ock_groupp/a>, pa href="3code=37s" clde=s_itb_per_group" class="sr3t;o152p/a>/balloc.c#L123" ide2L123"2class="line" namue=L123">o123p/a>                             line" namue=L123">olass="s=a href="+code=block_group" cl3tB" class3sref">sbp/a>, pa href="+3ode=g3p" class="srefpa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, struca href="+code=block_group" cl3t to sffe3sref">sbp/a>, pa href="+3ode=g37e=bh" s="sref">b_datap/a>); 148"2ef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" clasref="_o=L5p/a>        pa ref="_o=Ltruca href="+code=block_group" cl3t"fs/ext43sref">sbp/a>, pa href="+3ode=g37line" namue=L155">o155p/a>} -&g3;pa href="+code=s_blocks3ze" c37"line" namue=L166">o166p/a> line" namue=L123">olass="s= =r.c#L123" ide2L123"2cl   struct pa href="+code=ext4_group_desc" class="s=">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/ao/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=>(pa href="+code=sb" class="sr3 s="sref"3ss="sref">gdpp/a>, pa hr3f="+c3de=bh" class="">b_ { 2a href="f2/eline" namue=L123">olass="s=>pa href="+code=sb" class="sr3 roup_tp/38" class="line" namue=L138">o137de=bh" class="sref">bef">ip/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=a href="+code=block_group" cl34/balloc.3#L179" ide=L179" class="3ine" 38"line" namue=L129">o129p/a> sref="_o=L5p/a>        pa ref="_o=Ltruc.c#L92" id1e=L9219lass="line" namue=L182">o182>startp/a>, pa href="+codks" class="sref">blocksp/a>   pa href="+code=ext4_block_line" namue=L123">olass="s=>(pa href="+code=sb" class="sr3sbp/a>-&g3;pa href="+code=s_blocks3ze" c38ef">inode_clus129">o129p/a> e* If checkp_tp/a> pa h href="+code=ext4_/eoup_o=L5p/a>        pa/eoup_o=L="s=">startp/a> = pa href="+code=ext4_group_first_block_no" cref="_o=L5p/a>        pa ref="_o=Ltruc>(pa href="+code=sb" class="sr3s"sref">b3/balloc.c#L181" ide=L1813 clas382=bh" class="">b_="+code=super_bunlikelyk_group" class=unlikelycodk= { 2a href="f2/ee"line" namue=L180">o18brode=s_itb_per_group" class="sr3f;block_grou>++) { 2a href="f2/ext4/balloc.c#L172" ide=L172" class="line" namue=L172">o172p/a>                pa href="+code=ext4_erroCannotuup_144"24cle" namue=ef57" cl- >(pa href="+ce=s_itb_per_group" class="sr3class="sr3f">bit_maxp/a>; pa href=3+code38ef">inode_clusterp/a> = -1; 2d-o   pa href="+code=ext4_erro href="+cod =rrorp/a, >, pa href=" =rrorp/lla>(pa href="+coe=s_itb_per_group" class="sr3ss="sref"3bhp/a>->pa href="+cod3=b_da38" class="sref">gdpp/a = -1; 2d-oe=sb" class="sref">sbp/a>, pspal class="string">"Chode=sb" class="sroref="_o=L5p/a>        pa ref="_o=Ltruc>(pa href="+code=sb" class="sr3s"fs/ext43/balloc.c#L185" ide=L1853 clas38="sref">num_clusterspef">ip/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=a href="+code=block_group" cl34bp/a>-&g3 pa href="+code=block_gr3up" c38ss="sref">s_b s="sref">b_datap/a>); 2a hre3f="fs/ext3/balloc.c#L187" ide=L1873 clas38line" namue=L136">o136p/a>} 2a hr3RE_INCOMP3T_FLEX_BG" class="sref">3XT4_a389tmp" class="s187="+code=super_blref="_uptod>oe5p/a>        pa ref="_uptod>oecodk=bit" class="sre="line" namue=L180">o18bref="+code=block_grou3134code3p/a>     3  int pa href="+code=fle3_bg" 39ass="sref">block_grougoto/a>++) { 2a href171p/a=L182">o182>sta171p/asrefa href="+code=block_group" cl3ef="1fs/e3t4/balloc.c#L90" id1e=L931 cla39ss="sref">s_blocksizep/a>); o182>sta, pa h4"24ccodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl3e;sbp/a>, pa href3"+cod39152">o152p/a>s187="+code=super_blref="_uptod>oe5p/a>        pa ref="_uptod>oecodk=bit" class="sre="line" namue=L180">o18brode=s_itb_per_group" class="sr3elass="sr3 pa href="+code=block_gr3up" c39ef">inode_clusterp/a>="+code=super_bunl pa h4"24c=L182">o182>staunl pa h4"24ccodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl3es="sref"3bhp/a>->pa href="+cod3=b_da39" class="sref">gdpp/agoto/a>++) { 2a href171p/a=L182">o182>sta171p/asrefa href="+code=block_group" cl3e"fs/ext43t4/balloc.c#L95" id1e=L9319las39=i" class="sr s="sref">b_datap/a>); 2a hre3e=sb" cla3s="sref">sbp/a>, pa href3"+cod39"line" namue=L166">o166p/a> 148"2t4/b5">o 55p/a>        pa23"2ct4/b5">o 5sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr3e="fs/ext3 pa href="+code=block_gr3up" c39e=bh" class="">b_ode=ext4_block_line" namue=L123">olass="s=0p/a>        pa href=g_flagt25" ide2L125"22=g_flagt=bh" hamp;8        pa hrefcpu_to_leblock_group125"22cpu_to_leblsref">startp/a> = paext4_BGo="+co_UNINITock_group125"22ext4_BGo="+co_UNINIT>o18brode=s_itb_per_group" class="sr3eE_INCOMP3bhp/a>->pa href="+cod3=b_da39de=bh" class="sref">bL166">o166p/a> 148"25p/a="line" namue=L182">o182>startp/a5p/a="line" namuesref">startp/a> = pa href="+code=ext4_group_first_block_no" c"line" namue=L180">o18_first_block_no" class="sref">ext4_group_first_block_nop/ao/a>++) { 2a hrefline" namue=L123">olass="s=>(pa href="+code=sb" class="sr4    4fs/e4t4/balloc.c#L99" id1e=L9419las40>                 */p/185">o185p/a> "lineref="_uptod>oe5p/a>        pa"lineref="_uptod>oecodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4e=sb" cla4s="sref">sbp/a>, pa href4"+cod40s" class="sref">s_espL185">o185p/a> "lineock" cuptod>oe5p/a>        pa"lineock" cuptod>oecodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4e2sb" cla4s   *, For the allocaoa 4+code4+gdp" class="sref">gdpL166">o166p/a> 148"2unl4/b5">o 55p/a>        pa23"2cunl4/b5">o 5sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr4f">s_itb_4er>startp/a>, pa href="+4od+co40ass="sref">block_grou>++) { 2a href=unl pa h4"24c=L182">o182>staunl pa h4"24ccodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4ef">ip/a>4 pa href="+code=block_gr4up" c40ef">inode_clusterp/a>ef">ipfirst_block_no" c"line" namue=L180">o18a href="+code=block_group" cl4e5">ip/a>4 hp/a>->pa href="+cod4=b_da405=sb" class=" s="sref">b_datap/a>); 2a hre44/balloc.4#L105" ide2L105"2class="4ine" 40"line" namue=L185">o185p/a> 148"2unl4/b5">o 55p/a>        pa23"2cunl4/b5">o 5sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr4f7balloc.4#="sref">sbp/a>, pa href420las40" class="sref">b_ppppppppppppnamuock" cuptod>oe5p/a>        paeock" cuptod>oecodk=bit" class="sre="line" namue=L180">o18brode=s_itb_per_group" class="sr4s8balloc.4#pa href="+code=block_gr4   ps40de=sb" class="sref">sss="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L129" ide24 checkwit4s="commng">&qis lesgh ma4 used40           * blocks.p/spaln bnotuun5p/a ">bbhniseuptod>oe,a href="f2/ext4/balloc.c#L129" ide24hpal clas4sizaentfes al ae=setlock4 in t41 block group.  If itp/spaln 2a href="fs/ext4/ ext4/balloa/extuptod>oecohref="f2/ext4/balloc.c#L129" ide24h=sb" cla4 o        * tofes al to 4 in t41 block group.  If itp/spaln 2a href="fs/ext4/a href="f2/ext4/balloc.c#L146" ide2L4ss="line"4namue=L91">o 91p/a>pspal4class41gdp" class="sref">gdpL166">o166p/a> "lineref="_uptod>oe5p/a>        pa"lineref="_uptod>oecodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4f">sbp/a>4 pa href="+code=block_gr4up" c41ass="sref">block_grou>++) { 2a href=unl pa h4"24c=L182">o182>staunl pa h4"24ccodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4ss="sref"4bhp/a>->pa href="+cod4=b_da41ef">inode_clusterp/a>goto/a>++) { 2a href171p/a=L182">o182>sta171p/asrefa href="+code=block_group" cl4e=gdp" cl4ss="sref">gdpp/a>, pa hr4f="+c415=sb" class=" s="sref">b_datap/a>); 2a hre4ss="sref"4block_groupp/a>, pa href4"+cod41"line" namue=L namue=L187">o187p/a> 2 href="f2/ext4/balloc.c#L146" ide2L4s7balloc.4balloc.c#L116" ide2L116"41lass41other tool was used,p/spaln  *p e" nrss=ing href="f2/ext4/balloc.c#L146" ide2L4s8balloc.4/balloc.c#L117" ide2L117421las41ulate the right freep/spaln o185p/a> "lineock" cnew5p/a>        pa"lineock" cnewcodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4esess="co4   * c     " cla      it4 file42"line" namue=L129">o129p/a> trace_lass=rss=a>, pa href="_e=L1line" namue=L18trace_lass=rss=a>, pa href="_e=L1sref">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr4namue=L174">o17t*heck to ses al a 4er-gr42ef">inode_clus129">o129p/a> e"line" namue=L180">o180p/a>        pa href="end_ip/a>        pa h="end_iptruc.c#L92" id1e=L9219lass=end_href="_rass="sref">super_blass=end_href="_rasssrefa href="+code=block_group" cl4class="sr4f">super_blockp/a> *pa h4ef="+42p read-only flag. */p/spaln up_de"line" namue=L18up_de"codk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4e">sbp/a>4> pa href="+code=block_g4oup" 42152">o152p/a>c.c#L148" ide2Lsubm/ade"line" namue=L18subm/ade"codk=bit" class="sreREADline" namue=L18READroup_first_block_no" c"line" namue=L180">o18ba href="+code=block_group" cl4es="sref"44_group_descp/a> *pa hre4="+co42ef">inode_cluef">ipfirst_block_no" c"line" namue=L180">o18a href="+code=block_group" cl4g=gdp" cl4balloc.c#L124" ide2L124"4class42" claa>++) { 2a href171p/a=L182">o182>sta171p/asref: href="+code=block_group" cl4gs="sref"4a href="+code=block_grou4" clk42"line" namue=L185">o185p/a> 148"2valid>oe="line" namue=L182">o182>startp/avalid>oe="line" namue="s="s" class="sref">blocksp/a>   pa href="+code=ext4_block_line" namue=L123">olass="s=ode=sb" class="sref">sbp/a>, pspal class="string">"Chode=sb" class="srock_group" class="sref">block_groupp/a>, pa href="+co4ss="sref"4block_groupp/a>, pa href4"+cod42ss="sref">s_bef">ipfirst_block_no" c"line" namue=L180">o18a href="+code=block_group" cl4g8balloc.4balloc.c#L127" ide2L127"4class42ef">i s="sref">b_datap/a>); 2a hre4f="f2/ext4/balloc.c#L128" ide2L128422las42p read-only flag. */p/spaln 2a hr4129"22cla4s="line" namue=L89">o 8 4   ps43"line" namue=L129">o129p/a> 2a href=s 0 onc.ccce=L, 1 onc72" c=/a href="f2/ext4/balloc.c#L146" ide2L4 *bloAcom4ent">        ains=sers"r4 cont43ss="sp/a>{ o182>startp/awaL1="line" namue="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structoc.c#L148" ide2L148"24lass="line" namue=L118">o118ppppppppppppppppppppppnamue=L55">o 55p/a>        pa href="+code=exoe=s_itb_per_group" class="sr41ofes al 4 * toamueitials,=1ofes a4 cont43gdp" class="sref">gdpppppppppppppa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, strucref="+code=block_grou3134code4"commenth4 allocaoaFor cal iomment4>    43ass="de=s_itb_per_group" class="sr4133"23cla4s="line" namue=L83">o 834   ps43" class="srefpa href="+code=super_b23"2class="line" namue=L123">o123p/a>                             line" namue=L123">olass="s=a href="+code=block_group" cl4        w4ichprmall blos tafrouomm4   ps43" class="sref">b_datap/a>); <b_ { 2a href="f2/eeock" cnew5p/a>        paeock" cnewcodk=bit" class="sre="line" namue=L180">o18bref="+code=block_grou3134code4"s="sref"4     rmall ad162"> memor4   ps43ss="sref">s_blocksizeef">ip/" class="line" namue=L165">o164  al m th4 c (    o_anddill_er of)4>    438line" namue=L166">o166p/a> line" namue=L123">olass="s= =r.c#L123" ide2L123"2cl   struct pa href="+code=ext4_group_desc" class="s=">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/ao/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=>(pa href="+codnamue=L165">o164 ="f2/ext4="line" namue=L88">o 88 4er-gr439tmp" class="s187 { 2a href="f2/eline" namue=L123">olass="s=>pa href="+code=sb" class="sr4f="f2/ext4/balloc.c#L139" ide2L139423las44ass="sref">block_grouef">ip 1(pa href="+codnamue=L165">o16440"24lass4"line" namue=L170">o17/*4   ps44ef">inode_clus129">o129p/a> waL1=on h4"24c=L182">o182>stawaL1=on h4"24ccodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4kc-ll ad=4comment">       2eom dis4   ps442=bh" class="">b_ { 2a href="f2/eeock" cuptod>oe5p/a>        paeock" cuptod>oecodk=bit" class="sre="line" namue=L180">o18brode=s_itb_per_group" class="sr42* @sb:3p4a>             r ofs="co4   ps44ass="sref">block_grou>++) { 2a href="f2/ext4/balloc.c#L172" ide=L172" class="line" namue=L172">o172p/a>                pa href="+code=ext4_erroCannoturss="amue=ef57" cl- >(pa href="+ce=s_itb_per_group" class="sr4lock_grou43p/a>   gimmensee if the4   ps44ef">inode_clusterp/a> = -1; 2d-o   pa href="+code=ext4_erro href="+cod =rrorp/a, >, pa href=" =rrorp/lla>(pa href="+coe=s_itb_per_group" class="sr4h to sffe4_  cla">      ek to see 4   ps44" class="sref">gdpp/a>block_grou>++) { 2a href=class="sref">ext4_group_first_block_nop/ao/(140">o140long0long)us129">o129p/a> e"line" namue=L180">o180p/a>        pa href="rst_bnballoc.c#L172" i="rst_bnb>o18ba href="+code=block_group" cl4k class="4         "comment">     4   ps44=i" class="sref">ip/aef">ip 1(pa href="+codnamue=L165">o1644s="sref"4"line" namue=L146">o146 4er-gr44ss="sref">s_b s="sref">b_datap/a>); 2a hre42 al m th4f">super_blockp/a> *pa h4ef="+448line" namue=L166">o166p/a> clearneock" cnew5p/a>        paclearneock" cnewcodk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4k="f2/ext4> pa href="+code=block_g4oup" 4lass="sref">bl" namue=L129">o129p/a> 2aPanic " nrsmou/a>fsurss=-only ">bbmue=ef57" clis=13valide/a href="f2/ext4/balloc.c#L146" ide2L4sb" 2L13449">o149p/a>pspal class="4ommen45"line" namue=L129">o129p/a> 148"2valid>oe="line" namue=L182">o182>startp/avalid>oe="line" namue="s="s" class="sref">blocksp/a>   pa href="+code=ext4_block_line" namue=L123">olass="s=ode=sb" class="sref">sbp/a>, pspal class="string">"Chode=sb" class="srock_group" class="sref">blockxt4/balloc.c#L146" ide2L4s0"24lass4">sbp/a>)->pa href="+4ode=s45s" class="sreef">ip/" class="line" namue=L165">o164f">sbp/a>4 pa href="+code=block_gr4up" c45gdp"  s="sref">b_datap/a>); 2a hre4f* @sb:3p4" ide=L152" class="line"4namue45ass="s="sref">b_datap/a>); 2a hre4fock_grou4OCKS_PER_GROUPp/a>(pa hr4f="+c45ef">ipa href="+code=super_block" class="sref">super_blockp/a> *pa hreff2/ext4/balloc.c#L146" ide2L4f to sffe4">sbp/a>), pa href="+cod4=bloc45" claa>++) { 2a hreflass=rss=a>, pa href="=L182">o182>startp/arss=a>, pa href="="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structoc.c#L148" ide2L148"24lass="line" namue=L118">o118ppppppppppppppppppppppnamue=L55">o 55p/a>        pa href="+code=ex>pa href="+code=sb" class="sr4s class="4balloc.c#L155" ide=L155"4class45l clade=s_itb_per_group" class="sr4f6"2class4/balloc.c#L156" ide=L1564 clas45"line" namue=pa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" class="sref">sbp/a>, struca href="+code=block_group" cl4f al m th4ent">/* Initializes al u4initi45line" namue=L136">o136p/a>} 2a hr4s8"23clas4f">buffer_headp/a> *pa h4ef="+459line" namue=L185">o185p/a> e* If checkp_tp/a> pa h href="+code=ext4_lass=rss=a>, pa href="_nowaL104" ide2L104"2class=rss=a>, pa href="_nowaL1="s=">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/a>(pa href="+code=sb" class="sr4group_tp/4> pa href="+code=block_g4oup" 460tmp" class="s187="+code=super_brtp/awaL1="line" namue=L182">o182>startp/awaL1="line" namue="s=">startp/a> = pa href="+code=ext4_group_first_block_no" class="sref">ext4_group_first_block_nop/ao/a>++) { 2a href="line" namue=L180">o18brode=s_itb_per_group" class="sr4"sref">ex44_group_descp/a> *pa hre4="+co46s" class="sref">s_espL185">o185p/a> puade"line" namue=L18puade"codk=bit" class="sre="line" namue=L180">o18ba href="+code=block_group" cl4"">sbp/a>4balloc.c#L161" ide=L161"4class46gdp" class="sref">gdpef">ip/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=a href="+code=block_group" cl4"* @sb:3p4>bitp/a>, pa href="+code4bit_m46=i" class="sr s="sref">b_datap/a>); 2a hre4SB" class4"sref">EXT4_SBp/a>(pa hr4f="+c46ef">inode_cluef">ipfirst_block_no" c"line" namue=L180">o18a href="+code=block_group" cl4S to sffe4"sref">startp/a>, pa hre4="+co46l cla s="sref">b_datap/a>); 2a hre4S class="4  int pa href="+code=fle4_bg" 46line" namue=L155">o155p/a>} /*p/spaln 2a href="f2/ext4/balloc.c#L140" ide2L4f al m th4buffer_lockedp/a>(pa hre4="+co46           * blocks.p/spaln 2artp/ahas_free_clusters() href="f2/ext4/balloc.c#L140" ide2L4sroup_tp/4/balloc.c#L168" ide=L1684 clas46o prevent allocao2o p/spaln 2a hrit4/ballocin-cone"oc#L142" id=pa hreure" namue=L147">o147*iwhes"a 2mment"> 4 If check4um is bad mark all block4 used47 block group.  If itp/spaln 2a nclusterst4/ss="linof neede="amue=s       * tofes al al somment">/* It4 sref">ex4entially implementing a 4er-gr47l class="comment">/*p/spaln 2a@flagtt4/ballflagt fromartp/ambcnew="lines() href="f2/ext4/balloc.c#L140" ide2L4="sref">b4ock_groupp/a>, pa href="4code=47l class="comment">/*p/spaln 2 href="f2/ext4/balloc.c#L140" ide2L4=* @sb:3p4 pa href="+code=block_gr4up" c47l class="comment">/*p/spaln 2aCt4/b s18filesystem h=L1nclusters free hamp;8availlass="f2/a0" i>o169" namue=L147">o147*iwhes"a 2mment"> 4 B" class4sref">sbp/a>, pa href="+4ode=g47l class="comment">/*p/spaln 2 Onc.ccce=L8ef">ip 1,eef">ip/" oncfailure" namue=L147">o147*iwhes"a 2mment"> 4t to sffe4sref">sbp/a>, pa href="+4ode=g47l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L146" ide2L4t"fs/ext44sref">sbp/a>, pa href="+4ode=g47line"st>o1c0p/a>{ o182>startp/ahas_free_clusters="s="sref">block_groupp/a> rtp/asb_infp/a>        pa href="sb_infppat pa >ext4>num_clusteiref="+code=ext4_gie=exoe=s_itb_per_group" class="sr4sbp/a>-&g4;pa href="+code=s_blocks4ze" c47ss="sref">s_blocksizeeeeeeeeeeee">s_espL185">o185p/a> s"sref">EXT4e=ext4_6ef">inL185">o185p/a> nclusters=L182">o182>stanclusters="s=, 140">o140p/a>{ pa href="+code=sb" class="sr4 s="sref"4ss="sref">gdpp/a>, pa hr4f="+c4de=bh"de=s_itb_per_group" class="sr4 roup_tp/48" class="line" namue=L148">o1479line" namue=L185">o185p/a> ""sref">EXT4e=ext4_6ef">inL185">o185p/a> free_clusters=L182">o182>stafree_clusters="s=+code=ext4_block_lirty_clusters=L182">o182>stalirty_clusters="s=+code=ext4_block_root_clusters=L182">o182>staroot_clusters>o18a href="+code=block_group" cl44/balloc.4#L179" ide=L179" class="4ine" 48"line" namue=sref">block_groupp/a> #L1cpu_cou/a4c=L182">o182>sta#L1cpu_cou/a4cpat pa >ext4>num_clusfce" namue=L123">ofcepa h hrhamp; >ext4>num_clusteiref="+code=ext4_gie=ex02"20lass="line" namuefreeclusters_cou/a4c=L182">o182>stauefreeclusters_cou/a4c>o18a href="+code=block_group" cl44sref">ex4;pa href="+code=s_blocks4ze" c48ef">inode_clusref">block_groupp/a> #L1cpu_cou/a4c=L182">o182>sta#L1cpu_cou/a4cpat pa >ext4>num_clusdce" namue=L123">odcepa h hrhamp; >ext4>num_clusteiref="+code=ext4_gie=ex02"20lass="line" namuelirtyclusters_cou/a4c=L182">o182>stauelirtyclusters_cou/a4c>o18a href="+code=block_group" cl44"sref">b4/balloc.c#L181" ide=L1814 clas48s" class="sref">blocksp/a>; o152p/a>c.c#L148" ide2Lfree_clusters=L182">o182>stafree_clusters="s=  href="+code=ext4_#L1cpu_cou/a4c=rss=apositive5p/a>        pa#L1cpu_cou/a4c=rss=apositivecodk=bit" class="srefce" namue=L123">ofcepa hba href="+code=block_group" cl4class="sr4f">bit_maxp/a>; pa href=4+code48ef">inode_cluode=ext4_block_lirty_clusters=L182">o182>stalirty_clusters="s= href="+code=ext4_#L1cpu_cou/a4c=rss=apositive5p/a>        pa#L1cpu_cou/a4c=rss=apositivecodk=bit" class="sredce" namue=L123">odcepa hba href="+code=block_group" cl4c to sffe4bhp/a>->pa href="+cod4=b_da48e=bh" s="sref">b_datap/a>); root_clusters=L182">o182>staroot_clusters>o18 href="+code=ext4_ext4_B2C=L182">o182>staext4_B2C="s=">startp/a> = pa hiref="+code=ext4_gie=exoref="+code=ext4_lass=r="lines_cou/a04" ide2L104"2class=r="lines_cou/a="s=">startp/a> = pa hiref="+code=ext4_gie=ex02"20lass="line" namuees=L182">o182>stauees>o18bra href="+code=block_group" cl4c"fs/ext44/balloc.c#L185" ide=L1854 clas48line" namue=L155">o155p/a>} -&g4 pa href="+code=block_gr4up" c48" class="sref">b_ppppppppppppnamfree_clusters=L182">o182>stafree_clusters="s= -b_   61"comment">nclusters=L182">o182>stanclusters="s= +ref="+code=ext4_root_clusters=L182">o182>staroot_clusters>o18 +ref="+code=ext4_lirty_clusters=L182">o182>stalirty_clusters="s=).de2L namue=L155">o155p/a>} scksizeeeeeeeeeeee">s_espL185">o185p/a> ext4_FREECLUSTERS_WATERMARK=L182">o182>staext4_FREECLUSTERS_WATERMARK="s=).de=s_itb_per_group" class="sr4RE_INCOMP4T_FLEX_BG" class="sref">4XT4_a48de=bh" class="sref">bL166">o166p/a> free_clusters=L182">o182>stafree_clusters="s=  href="+code=ext4_ext4_C2o" class="sref">ext4_C2o="s=">startp/a> = pa hiref="+code=ext4_gie=exoref="+code=ext4_#L1cpu_cou/a4c==L11positive5p/a>        pa#L1cpu_cou/a4c==L11positivecodk=bit" class="srefce" namue=L123">ofcepa hbra href="+code=block_group" cl4p/a>     4  int pa href="+code=fle4_bg" 49ass="sref">block_grouode=ext4_block_lirty_clusters=L182">o182>stalirty_clusters="s= href="+code=ext4_#L1cpu_cou/a4c==L11positive5p/a>        pa#L1cpu_cou/a4c==L11positivecodk=bit" class="sredce" namue=L123">odcepa hba href="+code=block_group" cl4ef="1fs/e4t4/balloc.c#L90" id1e=L941 cla49ef">inode_clu s="sref">b_datap/a>); 2a hre4e="fs/ext4    *, For the allocaoa 4er-gr4up read-only fl namue=L129">o129p/a> 2aCt4/b wheline"we have  nace afa4c accou/aing="f2/curre/a="ref="f2/ext4/balloc.c#L146" ide2L4e;sbp/a>, pa href4"+cod49l class="comment">/*p/spaln         * lirty clusters hamp;8root reserv140clusters" namue=L147">o147*iwhes"a 2mment"> 4elass="sr4 pa href="+code=block_gr4up" c49l class="comment">/*p/spaln         *a href="f2/ext4/balloc.c#L146" ide2L4es="sref"4bhp/a>->pa href="+cod4=b_da49" class="sref">b_ppppppppppppnamfree_clusters=L182">o182>stafree_clusters="s= 2"20= (_ppppppppppppnamroot_clusters=L182">o182>staroot_clusters>o18 +ref="+code=ext4_nclusters=L182">o182>stanclusters="s=) +ref="+code=ext4_lirty_clusters=L182">o182>stalirty_clusters="s=)>pa href="+code=sb" class="sr4e"fs/ext44t4/balloc.c#L95" id1e=L9419las49=i" class="sref">ip/aef">ip 1(pa href="+codnamue=L165">o164e=sb" cla4s="sref">sbp/a>, pa href4"+cod49"linepa href="+codnamue=L165">o164es="sref"4 pa href="+code=block_gr4up" c49e=bh" class="l namue=L129">o129p/a> 2aHm, nope.  Are (enough)8root reserv140clusters8availlass? *a href="f2/ext4/balloc.c#L146" ide2L4eE_INCOMP4bhp/a>->pa href="+cod4=b_da499tmp" class="s187="+code=super_buid_eq=L182">o182>stauid_eq="s=">startp/a> = pa hiref="+code=ext4_gie=ex02"20lass="line" namueresuid=L182">o182>staueresuide=exoref="+code=ext4_curre/a_fsuid=L182">o182>stacurre/a_fsuid="s=")) ||f2/ext4/balloc.c#L146" ide2L5    4fs/e5t4/balloc.c#L99" id1e=L9519las50>                _ { 2a href="f2/egid_eq=L182">o182>stagid_eq="s=">startp/a> = pa hiref="+code=ext4_gie=ex02"20lass="line" namueresgid=L182">o182>staueresgide=exoref="+code=ext4_GLOBAL_ROOT_GIDline" namue=L18GLOBAL_ROOT_GID="s=).damp;hamp;8        pa hrefin118ppppf">ext4_group_fiin118ppppf="s=">startp/a> = pa hiref="+code=ext4_gie=ex02"20lass="line" namueresgid=L182">o182>staueresgide=ex)) ||f2/ext4/balloc.c#L146" ide2L5 1  4fs/e5t4/balloc.c#L90" id1e=L95"+cod50s" class="sref">sef="+code=ext4_caplass=L182">o182>stacaplass="s=">startp/a> = paCAP_SYS_RESOURCE=L182">o182>staCAP_SYS_RESOURCE="s=).||f2/ext4/balloc.c#L146" ide2L5 2  4fs/e5t   *, For the allocaoa 5+code5+gdp" class="sref">gdp_ppppppppppppnamflagt25" ide2L125"22flagt=bh" hamp;8        pa hrefext4_MB_USE_ROOT_="+coS" class="sref">ext4_MB_USE_ROOT_="+coS>o18brode=s_itb_per_group" class="sr5f">s_itb_5er>startp/a>, pa href="+5od+co50ass="s="sref">b_datap/a>); 2a hre5ef">ip/a>5 pa href="+code=block_gr5up" c50ef">inode_clusterp/a>">b_ppppppppppppnamfree_clusters=L182">o182>stafree_clusters="s= 2"20= (   61"comment">nclusters=L182">o182>stanclusters="s= +ref="+code=ext4_lirty_clusters=L182">o182>stalirty_clusters="s=)>pa href="+code=sb" class="sr5e5">ip/a>5 hp/a>->pa href="+cod5=b_da50" class="sref">gdpp/a>block_gef">ip 1(pa href="+codnamue=L165">o1654/balloc.5#L105" ide2L105"2class="5ine" 50=i" class="sr s="sref">b_datap/a>); 2a hre5f7balloc.5#="sref">sbp/a>, pa href520las50"linepa href="+codnamue=L165">o165s8balloc.5#pa href="+code=block_gr5   ps50de=sb" class=ef">ip/" class="line" namue=L165">o165 checkwit5s="commng">&qis lesgh ma5 used50      s="sref">b_datap/a>); 2a hre5hpal clas5sizaentfes al ae=setlock5 in t51 blocs="sref">b_datap/a>); 2a hre5h1  4fs/e5 o        * tofes al to 5 in t51ss="sp/a>{ o182>startp/a   im_free_clusters="s="sref">block_groupp/a> rtp/asb_infp/a>        pa href="sb_infppat pa >ext4>num_clusteiref="+code=ext4_gie=exoe=s_itb_per_group" class="sr5ss="line"5namue=L91">o 91p/a>pspal5class51gdp" class="sref">gdppppppppppppppL185">o185p/a> s"sref">EXT4e=ext4_6ef">inL185">o185p/a> nclusters=L182">o182>stanclusters="s=, 140">o140p/a>{ pa href="+code=sb" class="sr5f">sbp/a>5 pa href="+code=block_gr5up" c51ass="de=s_itb_per_group" class="sr5ss="sref"5bhp/a>->pa href="+cod5=b_da51ef">inode_clus187="+code=super_brtp/ahas_free_clusters=L182">o182>startp/ahas_free_clusters="s=">startp/a> = pa hiref="+code=ext4_gie=exoref="+code=ext4_nclusters=L182">o182>stanclusters="s=, { rode=s_itb_per_group" class="sr5e=gdp" cl5ss="sref">gdpp/a>, pa hr5f="+c51" class="sref">gdpp/a>, 0); o182>sta#L1cpu_cou/a4c=add="s="hamp; >ext4>num_clusteiref="+code=ext4_gie=ex02"20lass="line" namuelirtyclusters_cou/a4c=L182">o182>stauelirtyclusters_cou/a4c>o18oref="+code=ext4_nclusters=L182">o182>stanclusters="s=ba href="+code=block_group" cl5ss="sref"5block_groupp/a>, pa href5"+cod51=i" class="sref">ip/aef">ip " class="line" namue=L165">o165s7balloc.5balloc.c#L116" ide2L116"51lass51ss="sref">s_b  elseclass="line" namue=L165">o165s8balloc.5/balloc.c#L117" ide2L117521las51de=sb" class="sref">sef">ip -        pa hrefeNOSPC=L182">o182>staeNOSPC>o18a href="+code=block_group" cl5scheckwit5if the bloctpal sum iwhe5 used51      s="sref">b_datap/a>); 2a hre5esess="co5   * c     " cla      it5 file52 blocs="sref">b_datap/a>); 2a hre5namue=L175">o17t*heck to ses al a 5er-gr52l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L140" ide2L5class="sr5f">super_blockp/a> *pa h5ef="+52l class="comment">/*p/spaln 2aref="shoulderetry_40" i() href="f2/ext4/balloc.c#L140" ide2L5e">sbp/a>5> pa href="+code=block_g5oup" 52l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L142" ide2L142"24class="line" namue=L82">o 5es="sref"54_group_descp/a> *pa hre5="+co52l class="comment">/*p/spaln 2 @retries2/ext4/ballocss="linof attemps h=L1been madecohref="f2/ext4/balloc.c#L129" ide25g=gdp" cl5balloc.c#L124" ide2L124"5class52l class="comment">/*p/spaln 2cohref="f2/ext4/balloc.c#L129" ide25gs="sref"5a href="+code=block_grou5" clk52l class="comment">/*p/spaln 2aref="shoulderetry_40" i()lis=c40"140when eNOSPClis=ef">iped, ="liifcohref="f2/ext4/balloc.c#L129" ide25g7balloc.5block_groupp/a>, pa href5"+cod52l class="comment">/*p/spaln 2 /a "s proficlass to retry e2L1o#L1>o169, e2"s funco169 will waL1="href="f2/ext4/balloc.c#L129" ide25g8balloc.5balloc.c#L127" ide2L127"5class52           * blocks.p/spaln 2a"f2/e2L1curre/a " ns.p/itaing=transaco169 to s.pplete, ="lie2Ln="href="f2/ext4/balloc.c#L129" ide25gcheckwit5/balloc.c#L128" ide2L128522las52o prevent allocao2o p/spaln 2aef">ip TRUE" namue=L147">o147*iwhes"a 2mment"> 5129"22cla5s="line" namue=L89">o 8 5   ps53"line" namue=L129">o129p/a> 2cohref="f2/ext4/balloc.c#L129" ide25 *bloAcom5ent">        ains=sers"r5 cont53l class="comment">/*p/spaln 2as18e2L1totalcss="linof retries2exceelie2ree times,eef">ip/FALSE" namue=L147">o147*iwhes"a 2mment"> 51lass="sr5 * toamueitials,=1ofes a5 cont53l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L146" ide2L5"commenth5 allocaoaFor cal iomment5>    53ass="p/a>{         pa href="shoulderetry_40" i="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structop/a>a >ext4>num_clusretries=L182">o182>staretries=bh">pa href="+code=sb" class="sr5133"23cla5s="line" namue=L83">o 835   ps53" clade=s_itb_per_group" class="sr5        w5ichprmall blos tafrouomm5   ps53" class="sref">b_ { 2a href="f2/ertp/ahas_free_clusters=L182">o182>startp/ahas_free_clusters="s=">startp/a> = paext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc), 1,e0).||f2/ext4/balloc.c#L146" ide2L5= class="5ommen to ses aleitialiFo5   ps53=i" class="sref">(a >ext4>num_clusretries=L182">o182>staretries=bh">++ 2"20 3.||f2/ext4/balloc.c#L146" ide2L5=7balloc.5     rmall ad162"> memor5   ps53ss="sref">s_block { 2a href="f2/eext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc)02"20lass="line" namuejo>ipal=L182">o182>stauejo>ipal=bh">pa href="+code=sb" class="sr518balloc.5 c (    o_anddill_er of)5>    53de=sb" class="sref">sef">ip " class="line" namue=L165">o165 ="f2/ext5="line" namue=L88">o 88 5er-gr53p read-only flag. */p/spaln 2a hr5f="f2/ext5/balloc.c#L139" ide2L139523las54"line" namue=L129">o129p/a> jbd_debug=L182">o182>stajbd_debug="s="1     pa href="+code=ext4_errororp/s: retrying=o#L1>o169 afa4c eNOSPC\n>(pa href="+coref="+code=ext4_/ers_in_groupp/a>(struc02"20lass="line" namueid=L182">o182>staueide=ex) class="line" namue=L165">o16540"24lass5"line" namue=L170">o17/*5   ps54ss="sref">s_blocksizep/a>);        2eom dis5   ps542=bh" class="ef">ipfirst_block_no" jbd2ejo>ipal_"f2ce_c.p/it_nested=L182">o182>stajbd2ejo>ipal_"f2ce_c.p/it_nested="s=">startp/a> = paext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc)02"20lass="line" namuejo>ipal=L182">o182>stauejo>ipal=bh"> class="line" namue=L165">o1654commenth5a>             r ofs="co5   ps54ass=" s="sref">b_datap/a>); 2a hre5lock_grou53p/a>   gimmensee if the5   ps54ef">is="sref">b_datap/a>); 2a hre5l       w5_  cla">      ek to see 5   ps54l class="comment">/*p/spaln 2 href="f2/ext4/balloc.c#L146" ide2L5k class="5         "comment">     5   ps54l class="comment">/*p/spaln 2aref="new=meta="lines() --/a0" i>oe42" id="f2/meta data (indexing)uamue=s       * tofes al al somment">/* It54s="sref"5"line" namue=L146">o146 5er-gr54l class="comment">/*p/spaln 2       * tofes al al somment">/* It52 al m th5f">super_blockp/a> *pa h5ef="+54           * blocks.p/spaln 2a@h="lleef="f2/ext4/bah="lle to e2"s transaco169       * tofes al al somment">/* It52="f2/ext5> pa href="+code=block_g5oup" 54o prevent allocao2o p/spaln 2a ext4/ef="f2/ext4/balfile ext4/       * tofes al al somment">/* It5sb" 2L13459">o149p/a>pspal class="5ommen55 block group.  If itp/spaln 2a goalef="f2/ext4/ballgiven tarup_14mue=(filesystem wide) href="f2/ext4/balloc.c#L140" ide2L5s0"24lass5">sbp/a>)->pa href="+5ode=s55l class="comment">/*p/spaln 2a@cou/aef="f2/ext4/balpoi/a4c to eotalcss="linof clusters8neede= href="f2/ext4/balloc.c#L140" ide2L5sc-ll ad=5 pa href="+code=block_gr5up" c55l class="comment">/*p/spaln 2a@errpef="f2/ext4/ball72" c=ct4/       * tofes al al somment">/* It5scommenth5" ide=L152" class="line"5namue55l class="comment">/*p/spaln 2       * tofes al al somment">/* It5sock_grou5OCKS_PER_GROUPp/a>(pa hr5f="+c55l class="comment">/*p/spaln 2 Rf">ip 1st/a0" i>oe="amue=ess="linonc.ccce=L, *cou/a stores2eotalcaccou/a       * tofes al al somment">/* It5s       w5">sbp/a>), pa href="+cod5=bloc55l class="comment">/*p/spaln 2l72" c=stores2inc72"plpoi/a4c       * tofes al al somment">/* It5s class="5balloc.c#L155" ide=L155"5class55l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L146" ide2L5f6"2class5/balloc.c#L156" ide=L1565 clas55"line{ 2a href="f2/ertp/aef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" claref="new=meta="linesext4/balloc.c#L164" new=meta="lines="s=">startp/a> = pah="lles/ext4/balloc.c#Lh="lles/pat pa >ext4>num_clush="lleext4/balloc.c#Lh="lletructosref">block_groupp/a> ext4/">ext4_group_fiin/    t pa >ext4>num_clus> ext4/">ext4_group_fiin/    code=ext4_gie=exoe=s_itb_per_gf al m th5ent">/* Initializes al u5initi55de=sb" class="sref">scksizeeeeeeeeeeee"{ 2a href="f2/ertp/aef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" clagoal=L182">o182>stagoal=bh", 140">o140p/a>{ buffer_headp/a> *pa h5ef="+55de=bh" class="sref">bbbbbbbbbbbbbbbbbbb140">o140long0a >ext4>num_cluscou/a04" ide2L104"2ccou/a="s=top/a>a >ext4>num_clus72"pext4/balloc.c#L12"p=bh">pa href="+code=sb" class="sr5group_tp/5> pa href="+code=block_g5oup" 560tmp"de=s_itb_per_group" class="sr5"sref">ex54_group_descp/a> *pa hre5="+co56ef">inode_clusref">block_groupp/a> 164" a0" i>o169_requestext4/balloc.c#L164" a0" i>o169_request4" cl="+code=sb" claac=L182">o182>staac>o18a href="+code=block_group" cl5"">sbp/a>5balloc.c#L161" ide=L161"5class56gdp" class="s{ 2a href="f2/ertp/aef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" claef"=L182">o182>staret>o18a href="+code=block_group" cl5"commenth5>bitp/a>, pa href="+code5bit_m56ass="s="sref">b_datap/a>); 2a hre5SB" class5"sref">EXT4_SBp/a>(pa hr5f="+c56ef">inode_cluode=ext4_block_memsf"=L182">o182>stamemsf"="s="hamp; >ext4>num_clusac=L182">o182>staac>o18, 0tosizeof">startp/a> = paac=L182">o182>staac>o18bra href="+code=block_group" cl5S to sffe5"sref">startp/a>, pa hre5="+co56e=bh" s="sref" namue=L129">o129p/a> 2aFill with8neighbo>i/a0" i>oe="amue=s 2a href="f2/ext4/balloc.c#L146" ide2L5S class="5  int pa href="+code=fle5_bg" 56"line" namue=L185">o185p/a> ac=L182">o182>staac>o18.lock_groupp/a> ext4/">ext4_group_fiin/    t phref="+code=ext4_ext4/">ext4_group_fiin/    t a href="+code=block_group" cl5S6"2class5/balloc.c#L166" ide=L1665 clas56"line" namue=L166">o166p/a> ac=L182">o182>staac>o18.lock_groupp/a> goal=L182">o182>stagoal=bh"phref="+code=ext4_goal=L182">o182>stagoal=bh"a href="+code=block_group" cl5S al m th5buffer_lockedp/a>(pa hre5="+co568line" namue=L166">o166p/a> ac=L182">o182>staac>o18.lock_groupp/a> len=L182">o182>stalLn="h"phref="+code=ext4_cou/a04" ide2L104"2ccou/a="s= ?0a >ext4>num_cluscou/a04" ide2L104"2ccou/a="s= : 1(pa href="+codnamue=L165">o165sroup_tp/5/balloc.c#L168" ide=L1685 clas569line" namue=L185">o185p/a> ac=L182">o182>staac>o18.lock_groupp/a> flagt25" ide2L125"22flagt=bh" href="+code=ext4_flagt25" ide2L125"22flagt=bh"(pa href="+codnamue=L165">o165 If check5um is bad mark all block5 used57 blocs="sref">b_datap/a>); 2a hre5 sref">ex5entially implementing a 5er-gr57ef">inode_clus129">o129p/a> ef"=L182">o182>staret>o18 href="+code=ext4_lass=mbcnew="linesext4/balloc.c#L164" mbcnew="lines="s=">startp/a> = pah="lleext4/balloc.c#Lh="lletructohamp; >ext4>num_clusac=L182">o182>staac>o18,  >ext4>num_clus72"pext4/balloc.c#L12"p=bh">(pa href="+codnamue=L165">o165 ">sbp/a>5ock_groupp/a>, pa href="5code=572=bh" class="">b_ >ext4>num_cluscou/a04" ide2L104"2ccou/a="s=>pa href="+code=sb" class="sr5=* @sb:3p5 pa href="+code=block_gr5up" c57ass="sref">block_groua >ext4>num_cluscou/a04" ide2L104"2ccou/a="s= href="+code=ext4_ac=L182">o182>staac>o18.lock_groupp/a> len=L182">o182>stalLn="h"(pa href="+codnamue=L165">o165 B" class5sref">sbp/a>, pa href="+5ode=g574=bh" s="sref" namue=L129">o129p/a> 2 href="f2/ext4/balloc.c#L146" ide2L5t to sffe5sref">sbp/a>, pa href="+5ode=g57l class="comment">/*p/spaln ock_groua Accou/aa"f2/e2L1a0" i>oe="meta "lines.  We will nev4c       * tofes al al somment">/* It5t"fs/ext45sref">sbp/a>, pa href="+5ode=g57l class="comment">/*p/spaln ock_groua fail EDQUOT="f2/metdata, but"we docaccou/a="f2/it" namue=L147">o147*iwhes"a 2mment"> 5sbp/a>-&g5;pa href="+code=s_blocks5ze" c57other tool was used,p/spaln gdpp/a>, pa hr5f="+c57e=bh" class="">b_!(a >ext4>num_clus72"pext4/balloc.c#L12"p=bh">.damp;hamp;f2/ext4/balloc.c#L146" ide2L5 roup_tp/58" class="line" namue=L158">o157de=bh" class="sreef="+code=ext4_lass=test_in/  _st>oeext4/balloc.c#Llass=test_in/  _st>oe="s=">startp/a> = pa> ext4/">ext4_group_fiin/    c8        pa hrefext4_STATE_DELALLOC_RESERVEDline" namue=L18ext4_STATE_DELALLOC_RESERVED>o18brode=s_itb_per_group" class="sr54/balloc.5#L179" ide=L179" class="5ine" 58ass="sref">block_grouode=ext4_block_spin_pa href="+code=ext4_pin_pa h="s="hamp; >ext4>num_clusext4_Iline" namue=L18ext4_I="s=">startp/a> = pa> ext4/">ext4_group_fiin/    )02"20lass="line" nami="line"reserv>o169_pa href="+code=ext4i="line"reserv>o169_pa h=bh">(pa href="+codnamue=L165">o1654sref">ex5;pa href="+code=s_blocks5ze" c58s" class="sref">s_espL185">o185p/a> ext4_Iline" namue=L18ext4_I="s=">startp/a> = pa> ext4/">ext4_group_fiin/    )02"20lass="line" nami=a0" i>oe==meta="linesext4/balloc.c#Li=a0" i>oe==meta="lines" cla+href="+code=ext4_ac=L182">o182>staac>o18.lock_groupp/a> len=L182">o182>stalLn="h"(pa href="+codnamue=L165">o1654"sref">b5/balloc.c#L181" ide=L1815 clas58gdp" class="sref">gdpL166">o166p/a> "pin_unl paref="+code=ext4_pin_unl pa="s="hamp; >ext4>num_clusext4_Iline" namue=L18ext4_I="s=">startp/a> = pa> ext4/">ext4_group_fiin/    )02"20lass="line" nami="line"reserv>o169_pa href="+code=ext4i="line"reserv>o169_pa h=bh">(pa href="+codnamue=L165">o1654* @sb:3p5 pa href="+code=block_gr5up" c58ass="sref">block_groulass="line" namd(pa =a0" i="line"nofailref="+code=ext4d(pa =a0" i="line"nofail="s=">startp/a> = pa> ext4/">ext4_group_fiin/    cpa href="+codnamue=L165">o1654B" class5f">bit_maxp/a>; pa href=5+code58ef">inode_clusterp/a>ass="sref">s_espL185">o185p/a> ext4_C2o" class="sref">ext4_C2o="s=">startp/a> = paext4_So" class="sref">ext4_So="s=">startp/a> = pa> ext4/">ext4_group_fiin/    02"20lass="line" nami= hrs_in_groupp/a>i= htruc), ef="+code=ext4_ac=L182">o182>staac>o18.lock_groupp/a> len=L182">o182>stalLn="h"bra href="+code=block_group" cl5c to sffe5bhp/a>->pa href="+cod5=b_da58e=bh" s="sref s="sref">b_datap/a>); 2a hre5c"fs/ext45/balloc.c#L185" ide=L1855 clas58"line" namue=ef">ipfirst_block_no" ef"=L182">o182>staret>o18a href="+code=block_group" cl54bp/a>-&g5 pa href="+code=block_gr5up" c58" cla s="sref">b_datap/a>); 2a hre5cs="sref"5/balloc.c#L187" ide=L1875 clas58line" namue=L136">o136p/a>} 2a hr5RE_INCOMP5T_FLEX_BG" class="sref">5XT4_a58o prevent allocao2o p/spaln 2a href="f2/ext4/balloc.c#L140" ide2L5p/a>     5  int pa href="+code=fle5_bg" 59 block group.  If itp/spaln 2artp/a ou/a_free_clusters() --/cou/a="ilesystem free clusters="ref="f2/ext4/balloc.c#L140" ide2L5psref">ex5t4/balloc.c#L90" id1e=L951 cla59l class="comment">/*p/spaln 2a@href="f2/ext_grou2" ide2L142"24class="line" namue=L82">o 5e="fs/ext5    *, For the allocaoa 5er-gr59l class="comment">/*p/spaln 2 href="f2/ext4/balloc.c#L140" ide2L5e;sbp/a>, pa href5"+cod59l class="comment">/*p/spaln a Addseup/e2L1ss="linof free clusters fromarach"amue=e18ppp" namue=L147">o147*iwhes"a 2mment"> 5elass="sr5 pa href="+code=block_gr5up" c59l class="comment">/*p/spaln *a href="f2/ext4/balloc.c#L146" ide2L5es="sref"5bhp/a>->pa href="+cod5=b_da59" claa>++) { 2a hreflass=ef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" claref=" ou/a_free_clustersext4/balloc.c#L164"  ou/a_free_clusters="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(struc>pa href="+code=sb" class="sr5e"fs/ext45t4/balloc.c#L95" id1e=L9519las59l clade=s_itb_per_group" class="sr5e=sb" cla5s="sref">sbp/a>, pa href5"+cod59"line" namue=L166">o166p/a> lass=ef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" clalass_cou/a04" ide2L104"2class_cou/a>o18a href="+code=block_group" cl5es="sref"5 pa href="+code=block_gr5up" c59e=bh" class="pa href="+code=super_b23"2class="line" namue=L123">o123p/a>                             gdpext4/balloc.c#Lgdp>o18a href="+code=block_group" cl5eE_INCOMP5bhp/a>->pa href="+cod5=b_da599line" namue=L185">o185p/a> 123p/a>    "line" namue=L118">o118ppppppppppppppppppppppnamiref="+code=ext4i>o18a href="+code=block_group" cl6    4fs/e6t4/balloc.c#L99" id1e=L9619las60"line" namue=L129">o129p/a> 148"2a>    "line" namue=L118">o118ppppppppppppppppppppppnamn18ppps=L182">o182>stan18ppps>o18 href="+code=ext4_lass=up_desc" s_cou/a04" ide2L104"2class=up_desc" s_cou/a="s=">startp/a> = paters_in_groupp/a>(struc>a href="+code=block_group" cl6 1  4fs/e6t4/balloc.c#L90" id1e=L96"+cod60s" cl#ifdefpL185">o185p/a> ext4FS_DEBUG" class="sref">ext4FS_DEBUGine" namue=L136">o136p/a>} 2a hr6 2  4fs/e6t   *, For the allocaoa 6+code6+gdp" class="ssref">block_groupp/a> rtp/as= pat pa href="+code=ext4rtp/as= pat pa h                     es=L182">o182>staet=bh"(pa href="+codnamue=L165">o166f">s_itb_6er>startp/a>, pa href="+6od+co60152">o152p/a>c.c#L148" ide2Llass=ef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" clahref="_cou/a04" ide2L104"2chref="_cou/a=bh"(pa href="+codnamue=L165">o166f4>s_itb_6epa href="+code=block_gr6up" c60ef">inode_clu140">o140p/a>{ o166f5>s_itb_6ehp/a>->pa href="+cod6=b_da60" class="srefpa href="+code=super_block" class="sref">super_blockp/a> *pa href="+code=sb" clasref="_c"line" namue=L180ref="_c">o18 href="+code=ext4_NULL25" ide2L125"22NULL="s=a href="+code=block_group" cl64/balloc.6#L105" ide2L105"2class="6ine" 60line" namue=L155">o155p/a>} sbp/a>, pa href620las60"line" namue=L166">o166p/a> ls=L182">o182>staet=bh" href="+code=ext4_ext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc)02"20lass="line" namuees=L182">o182>stauees>o18a href="+code=block_group" cl648balloc.6#pa href="+code=block_gr6   ps608line" namue=L166">o166p/a> line_cou/a04" ide2L104"2class_cou/a>o18 hr" class="line" namue=L165">o166 checkwit6s="commng">&qis lesgh ma6 used609line" namue=L185">o185p/a> eref="_cou/a04" ide2L104"2chref="_cou/a=bh" hr" class="line" namue=L165">o166hpal clas6sizaentfes al ae=setlock6 in t61"line" namue=L129">o129p/a> gdpext4/balloc.c#Lgdp>o18 href="+code=ext4_NULL25" ide2L125"22NULL="s=a href="+code=block_group" cl6h1  4fs/e6 o        * tofes al to 6 in t61ss="sref">s_blocksizep/a>); o 91p/a>pspal6class61gdp" class="s"f2/">startp/a> = pa>ref="+code=ext4i>o18 hr" pppppppppppppnamiref="+code=ext4i>o18.de2Lpppppppppppppnamn18ppps=L182">o182>stan18ppps>o18 pppppppppppppnamiref="+code=ext4i>o18++rode=s_itb_per_group" class="sr6f">sbp/a>6 pa href="+code=block_gr6up" c61ass="sref">block_groulass="line" namgdpext4/balloc.c#Lgdp>o18 href="+code=ext4_lass=up_desc" "line" namue=L123">o123p/ap_desc" class="s=">startp/a> = pa href="+code=ext4_group_first_block_no" iref="+code=ext4i>o18o/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=>(pa href="+codnamue=L165">o166ss="sref"6bhp/a>->pa href="+cod6=b_da61ef">inode_clusterp/a>">b_ { 2a href="f2/egdpext4/balloc.c#Lgdp>o18>pa href="+code=sb" class="sr6e=gdp" cl6ss="sref">gdpp/a>, pa hr6f="+c61" class="sref">gdpp/aaaaaaaaaco/ainue(pa href="+codnamue=L165">o166s/balloc.6block_groupp/a>, pa href6"+cod61=i" class="sref">ip/aL166">o166p/a> line_cou/a04" ide2L104"2class_cou/a>o18 +href="+code=ext4_164" iree_esc" cclustersext4/balloc.c#L164" iree_esc" cclusters="s=">startp/a> = pa href="+code=ext4_group_first_block_no" gdpext4/balloc.c#Lgdp>o18>(pa href="+codnamue=L165">o166s7balloc.6balloc.c#L116" ide2L116"61lass61ss="sref">s_blocksizeL185">o185p/a> erelse04" ide2L104"2chrelse="s=">startp/a> = pasref="_c"line" namue=L180ref="_c">o18>(pa href="+codnamue=L165">o166s8balloc.6/balloc.c#L117" ide2L117621las61de=sb" class="sref">s="+code=sb" clasref="_c"line" namue=L180ref="_c">o18 href="+code=ext4_164" rss=a>, pa href="=L182">o182>startp/arss=a>, pa href="="s=">startp/a> = pa href="+code=ext4_group_first_block_no" iref="+code=ext4i>o18>(pa href="+codnamue=L165">o166scheckwit6if the bloctpal sum iwhe6 used61de=bh" class="sref">b">b_ >ext4>num_clussref="_c"line" namue=L180ref="_c">o18 hhref="+code=ext4_NULL25" ide2L125"22NULL="s=>pa href="+code=sb" class="sr6esess="co6   * c     " cla      it6 file62ass="sref">block_grouaaaaaaaaco/ainue(pa href="+codnamue=L165">o166namue=L176">o17t*heck to ses al a 6er-gr62ss="sref">s_blocksizep/a>); super_blockp/a> *pa h6ef="+62gdp" class="sref">gdpL166">o166p/a> x04" ide2L104"2cx=bh" href="+code=ext4_164"  ou/a_freeext4/balloc.c#L164"  ou/a_free="s=">startp/a> = pasref="_c"line" namue=L180ref="_c">o180p/a>        pa href="dataline" namue=L180"data    cpa href="+codnamue=L165">o166e">sbp/a>6> pa href="+code=block_g6oup" 62ass="sref">block_grouuuuuuuuuuuuuuuuuuuuuef="+code=ext4_ext4_="+coS_PER_GROUP" class="sref">ext4_="+coS_PER_GROUP="s=">startp/a> = pa hrs_in_groupp/a>(struc) / 8>(pa href="+codnamue=L165">o166es="sref"64_group_descp/a> *pa hre6="+co62ef">inode_clusterp/a>>startp/a> = paprp/ahref="+code=ext4prp/ah="s=">startp/a> = paKERN_DEBUG" class="sref">KERN_DEBUG4" cl=  pa href="+code=ext4_erro"+cod rorp/a:=stored =rrorp/d,/cou/aed =rrorp/u\n>(pa href="+copa href="+codnamue=L165">o166e=gdp" cl6balloc.c#L124" ide2L124"6class62" class="sref">gdpp/aaaaaaaaairst_block_no" iref="+code=ext4i>o18o/a>++) { 2a href164" iree_esc" cclustersext4/balloc.c#L164" iree_esc" cclusters="s=">startp/a> = pa href="+code=ext4_group_first_block_no" gdpext4/balloc.c#Lgdp>o18>_first_block_no" x04" ide2L104"2cx=bh">(pa href="+codnamue=L165">o166e/balloc.6a href="+code=block_grou6" clk62=i" class="sref">ip/aL166">o166p/a> eref="_cou/a04" ide2L104"2chref="_cou/a=bh" +href="+code=ext4_x04" ide2L104"2cx=bh"(pa href="+codnamue=L165">o166g7balloc.6block_groupp/a>, pa href6"+cod62ss="sref">s_b pa href="+codnamue=L165">o166g8balloc.6balloc.c#L127" ide2L127"6class628line" namue=L166">o166p/a> erelse04" ide2L104"2chrelse="s=">startp/a> = pasref="_c"line" namue=L180ref="_c">o18>(pa href="+codnamue=L165">o166gcheckwit6/balloc.c#L128" ide2L128622las629line" namue=L185">o185p/a> prp/ahref="+code=ext4prp/ah="s=">startp/a> = paKERN_DEBUG" class="sref">KERN_DEBUG4" cl=  pa href="+code=ext4_erro164"  ou/a_free_clusters:=stored =rrorp/llu>(pa href="+cpa href="+codnamue=L165">o166129"22cla6s="line" namue=L89">o 8 6   ps63ass="sref">block_gro=  pa href="+code=ext4_erro, s.pputed =rrorp/llu,rrorp/llu\n>(pa href="+copa href="+codnamue=L165">o166 *bloAcom6ent">        ains=sers"r6 cont63s" class="sref">s_esef="+code=ext4_ext4_=2C=L182">o182>staext4_B2C="s=">startp/a> = paext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc), a>++) { 2a href164" iree_"lines_cou/a04" ide2L104"2class=iree_"lines_cou/a="s=">startp/a> = pals=L182">o182>staet=bh"))opa href="+codnamue=L165">o166 lass="sr6 * toamueitials,=1ofes a6 cont63gdp" class="sref">gdL166">o166p/a> line_cou/a04" ide2L104"2class_cou/a>o18o/a>++) { 2a href=ref="_cou/a04" ide2L104"2chref="_cou/a=bh">(pa href="+codnamue=L165">o166"commenth6 allocaoaFor cal iomment6>    63ass="sref">blef">ipfirst_block_no" cref="_cou/a04" ide2L104"2chref="_cou/a=bh"(pa href="+codnamue=L165">o166133"23cla6s="line" namue=L83">o 836   ps63" cla#elseclass="line" namue=L165">o166        w6ichprmall blos tafrouomm6   ps63" class="srefL166">o166p/a> line_cou/a04" ide2L104"2class_cou/a>o18 hr" class="line" namue=L165">o166= class="6ommen to ses aleitialiFo6   ps63=i" class="sr"f2/">startp/a> = pa>ref="+code=ext4i>o18 hr" pppppppppppppnamiref="+code=ext4i>o18.de2Lpppppppppppppnamn18ppps=L182">o182>stan18ppps>o18 pppppppppppppnamiref="+code=ext4i>o18++rode=s_itb_per_group" class="sr6=7balloc.6     rmall ad162"> memor6   ps63ss="sref">s_blocksrefL166">o166p/a> gdpext4/balloc.c#Lgdp>o18 href="+code=ext4_lass=up_desc" "line" namue=L123">o123p/ap_desc" class="s=">startp/a> = pa href="+code=ext4_group_first_block_no" iref="+code=ext4i>o18o/a>++) { 2a hrefNULL25" ide2L125"22NULL="s=>(pa href="+codnamue=L165">o16618balloc.6 c (    o_anddill_er of)6>    63de=sb" class="sref">s">b_ { 2a href="f2/egdpext4/balloc.c#Lgdp>o18>pa href="+code=sb" class="sr6 ="f2/ext6="line" namue=L88">o 88 6er-gr63de=bh" class="sref">bbbbbbbbbco/ainue(pa href="+codnamue=L165">o166f="f2/ext6/balloc.c#L139" ide2L139623las64ass="sref">block_grouode=ext4_block_line_cou/a04" ide2L104"2class_cou/a>o18 +href="+code=ext4_164" iree_esc" cclustersext4/balloc.c#L164" iree_esc" cclusters="s=">startp/a> = pa href="+code=ext4_group_first_block_no" gdpext4/balloc.c#Lgdp>o18>(pa href="+codnamue=L165">o16640"24lass6"line" namue=L170">o17/*6   ps64ef">inode_clu s="sref">b_datap/a>); 2a hre6kc-ll ad=6comment">       2eom dis6   ps64s" class="sref">blocksp/a>;              r ofs="co6   ps64ass="sref">blef">ipfirst_block_no" lass_cou/a04" ide2L104"2class_cou/a>o18a href="+code=block_group" cl6lock_grou63p/a>   gimmensee if the6   ps64" cla#endif href="+code=block_group" cl6l       w6_  cla">      ek to see 6   ps64l cla s="sref">b_datap/a>); 2a hre6k class="6         "comment">     6   ps64line" namue=L155">o155p/a>} o146 6er-gr64l clast>o1c0irst_block_no" ine=L146f="+code=ext4ine=L1ss="sp/a>{ startp/a> = pal48"2a>    "line" namue=L118">o118ppppppppppppppppppppppnamaline" namue=L18a    csp/a>{ pa href="+code=sb" class="sr62 al m th6f">super_blockp/a> *pa h6ef="+64e=bh"de=s_itb_per_group" class="sr62="f2/ext6> pa href="+code=block_g6oup" 649tmp" class="s/a>{ o182>stanum>o18 href="+code=ext4_href="+code=ext4struca href="+code=block_group" cl6sb" 2L13469">o149p/a>pspal class="6ommen65 blocs="sref">b_datap/a>); 2a hre6s0"24lass6">sbp/a>)->pa href="+6ode=s65ef">inode_cluwhile ">startp/a> = paaline" namue=L18a     2"20 { o182>stanum>o18>pa href="+code=sb" class="sr6sc-ll ad=6 pa href="+code=block_gr6up" c65gdp" class="sref">gdpL166">o166p/a> num=L182">o182>stanum>o18 *href="+code=ext4_href="+code=ext4struca href="+code=block_group" cl6scommenth6" ide=L152" class="line"6namue65ass="sref">blef">ipfirst_block_no" num=L182">o182>stanum>o18 hhref="+code=ext4_aline" namue=L18a    a href="+code=block_group" cl6sock_grou6OCKS_PER_GROUPp/a>(pa hr6f="+c65l cla s="sref">b_datap/a>); 2a hre6s       w6">sbp/a>), pa href="+cod6=bloc65l clas="sref">b_datap/a>); 2a hre6s class="6balloc.c#L155" ide=L155"6class65l clast>o1c0p/a>{     "line" namue=L118">o118ppppppppppppppppppppppnam18pppext4/balloc.c#Lg8ppp>o18>pa href="+code=sb" class="sr6ss="sref"6/balloc.c#L156" ide=L1566 clas65"linede=s_itb_per_group" class="sr6f al m th6ent">/* Initializes al u6initi65e=bh" class="">b_ppppppppppppnam18pppext4/balloc.c#Lg8ppp>o18.de2L= 1>pa href="+code=sb" class="sr6s="f2/ext6f">buffer_headp/a> *pa h6ef="+65de=bh" class="sref">bef">ip 1(pa href="+codnamue=L165">o166group_tp/6> pa href="+code=block_g6oup" 660=bh" class="">b_!_ppppppppppppnam18pppext4/balloc.c#Lg8ppp>o18.damp;81)>pa href="+code=sb" class="sr6"sref">ex64_group_descp/a> *pa hre6="+co66s" class="sref">s_espef">ip " class="line" namue=L165">o166"">sbp/a>6balloc.c#L161" ide=L161"6class66gdp" class="sef">ip _ppppppppppppnamtest_root46f="+code=ext4test_root="s=">startp/a> = pa18pppext4/balloc.c#Lg8ppp>o18, 7).||>{ startp/a> = pa18pppext4/balloc.c#Lg8ppp>o18, 5).||f2/ext4/balloc.c#L146" ide2L6"commenth6>bitp/a>, pa href="+code6bit_m66ass="sref">block_groulass="line" namtest_root46f="+code=ext4test_root="s=">startp/a> = pa18pppext4/balloc.c#Lg8ppp>o18, 3bra href="+code=block_group" cl6SB" class6"sref">EXT4_SBp/a>(pa hr6f="+c66l cla s="sref">b_datap/a>); 2a hre6S to sffe6"sref">startp/a>, pa hre6="+co66l clas="sref">b_datap/a>); 2a hre6S class="6  int pa href="+code=fle6_bg" 66l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L140" ide2L6S6"2class6/balloc.c#L166" ide=L1666 clas66l class="comment">/*p/spaln 2      8">o1bgahas_.c#L14-1ss="linof amue=s use="ay e2L1_grou2" id2incg8ppp>oref="f2/ext4/balloc.c#L140" ide2L6S al m th6buffer_lockedp/a>(pa hre6="+co66           * blocks.p/spaln 2aaaaaa@href_grou2" id2"f2/"ilesystem>oref="f2/ext4/balloc.c#L140" ide2L6S="f2/ext6/balloc.c#L168" ide=L1686 clas66o prevent allocao2o p/spaln 2aaaaaa@g8ppp:cg8ppp1ss="linto st4/b>oref="f2/ext4/balloc.c#L140" ide2L6 If check6um is bad mark all block6 used67"line" namue=L129">o129p/a> 2cohref="f2/ext4/balloc.c#L129" ide26 sref">ex6entially implementing a 6er-gr67l class="comment">/*p/spaln 2aaaaaaRf">ip e2L1ss="linof amue=s use="ay e2L1_grou2" id2(primary " nbackup) href="f2/ext4/balloc.c#L140" ide2L6 ">sbp/a>6ock_groupp/a>, pa href="6code=67l class="comment">/*p/spaln 2aass="s/ e2"s 18ppp"  Curre/aly e2"s will be only 0 " n1" namue=L147">o147*iwhes"a 2mment"> 6=* @sb:3p6 pa href="+code=block_gr6up" c67l class="comment">/*p/spaln aa href="f2/ext4/balloc.c#L146" ide2L6 B" class6sref">sbp/a>, pa href="+6ode=g674=bh"p/a>{ o1bgahas_.c#L1="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structo>startp/a> = pal48"2a>    "line" namue=L118">o118ppppppppppppppppppppppnam18pppext4/balloc.c#Lg8ppp>o18>pa href="+code=sb" class="sr6t to sffe6sref">sbp/a>, pa href="+6ode=g67l clade=s_itb_per_group" class="sr6t"fs/ext46sref">sbp/a>, pa href="+6ode=g676=bh" class="">b_ppppppppppppnamext4_HAS_RO_COMPAT_FEATURE" class="sref">ext4_HAS_RO_COMPAT_FEATURE="s=">startp/a> = pa href="+code=ext4_group_e=s_itb_per_group" class="sr6t6"2class6;pa href="+code=s_blocks6ze" c67ss="sref">s_blocksrefsref">block_groulass="line" namext4_FEATURE_RO_COMPAT_SPARSE_SUPER" class="sref">ext4_FEATURE_RO_COMPAT_SPARSE_SUPERtruc) damp;hamp;f2/ext4/balloc.c#L146" ide2L6 s="sref"6ss="sref">gdpp/a>, pa hr6f="+c67de=sb" class="sref">scksizeee { 2a href="f2/ertp/a18ppppf="rse04" ide2L104"2crtp/a18ppppf="rse="s=">startp/a> = pa18pppext4/balloc.c#Lg8ppp>o18>>pa href="+code=sb" class="sr6t="f2/ext68" class="line" namue=L168">o167de=bh" class="sre_espef">ip " class="line" namue=L165">o1664/balloc.6#L179" ide=L179" class="6ine" 68ass="sref">blef">ip 1(pa href="+codnamue=L165">o1664sref">ex6;pa href="+code=s_blocks6ze" c68s" cl s="sref">b_datap/a>); 2a hre64"sref">b6/balloc.c#L181" ide=L1816 clas68s" class="sref">blocksp/a>; o140long0{ o1bgass=_gdb=meta="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structass="sref">blocksp/a>; bit_maxp/a>; pa href=6+code68ef">inode_clusterp/a>ass="sref">s_espock_groulass="line" naml48"2a>    "line" namue=L118">o118ppppppppppppppppppppppnam18pppext4/balloc.c#Lg8ppp>o18>pa href="+code=sb" class="sr6c to sffe6bhp/a>->pa href="+cod6=b_da68l clade=s_itb_per_group" class="sr6c"fs/ext46/balloc.c#L185" ide=L1856 clas68"line" namue=140">o140long0{ o18./ulass="line" namext4_DESC_PER_="+co" class="sref">ext4_DESC_PER_="+co="s=">startp/a> = pa hrs_in_groupp/a>(struc)(pa href="+codnamue=L165">o16646"2class6 pa href="+code=block_gr6up" c68"line" namue=L166">o166p/a> lass=a>    "line" namue=L118">o118ppppppppppppppppppppppnamfirstext4/balloc.c#Lfirst>o18 href="+code=ext4_meta18pppext4/balloc.c#Lmeta18ppp>o18 *ulass="line" namext4_DESC_PER_="+co" class="sref">ext4_DESC_PER_="+co="s=">startp/a> = pa hrs_in_groupp/a>(struc)(pa href="+codnamue=L165">o1664s="sref"6/balloc.c#L187" ide=L1876 clas688line" namue=L166">o166p/a> lass=a>    "line" namue=L118">o118ppppppppppppppppppppppname" "line" namue=L11e" ">o18 href="+code=ext4_firstext4/balloc.c#Lfirst>o18 +ref="+code=ext4_ext4_DESC_PER_="+co" class="sref">ext4_DESC_PER_="+co="s=">startp/a> = pa hrs_in_groupp/a>(struc)4-11(pa href="+codnamue=L165">o1664="f2/ext6T_FLEX_BG" class="sref">6XT4_a68p read-only flag. */p/spaln 2a hr6p/a>     6  int pa href="+code=fle6_bg" 690=bh" class="">b_ef="+code=ext4_18pppext4/balloc.c#Lg8ppp>o18.hhref="+code=ext4_firstext4/balloc.c#Lfirst>o18 ||>{ o18 + 1 ||>{ o18>pa href="+code=sb" class="sr6psref">ex6t4/balloc.c#L90" id1e=L961 cla69s" class="sref">s_espef">ip 1(pa href="+codnamue=L165">o166e="fs/ext6    *, For the allocaoa 6er-gr69gdp" class="sef">ip " class="line" namue=L165">o166e;sbp/a>, pa href6"+cod69ass=" s="sref">b_datap/a>); 2a hre6elass="sr6 pa href="+code=block_gr6up" c69ef">is="sref">b_datap/a>); 2a hre6es="sref"6bhp/a>->pa href="+cod6=b_da69" clast>o1c0140">o140long0{ o1bgass=_gdb=nometa="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structass="sref">blocksp/a>; ip/aass="sref">s_espock_groulass="line" naml48"2a>    "line" namue=L118">o118ppppppppppppppppppppppnam18pppext4/balloc.c#Lg8ppp>o18>pa href="+code=sb" class="sr6e=sb" cla6s="sref">sbp/a>, pa href6"+cod69"linede=s_itb_per_group" class="sr6es="sref"6 pa href="+code=block_gr6up" c69e=bh" class="">b_!{ o1bgahas_.c#L1="s="s#L164" iree_esc" cclusters="s=">startp/a> = pa href="+coed =rrorp/llu,rrorp/llu\n>(pa href="+copa href="+codnamue=LE_INC6MP5bhp/a>->pa href="+6od5=b69167de=bh" class="sre_espef">ip " class="line" namue=L165">7cl6    4f7/e6t4/balloc.c#L99" id1e7L961970n65 blocs="sref">b_datap/a>); 2a 7cl6 1  4f7/e6t4/balloc.c#L90" id1e7L96"+701690=bh" class="">b_ef="+code=exf">ext4_HINRO_COMPAT_FEATURE" class="sref">ext4_HINRO_COMPAT_FEAT#L1="s="s#L164" iree_esc" cclusters="s=">staroulass="line" namext4_FEATUINRO_COMPMETA_BEBUG" class="sref">ext4_FEATUINRO_COMPMETA_BEllu\n>(pa href="+copa href="+codna7hr6 2  4f7/e6t   *, For the alloca7a 6+c70c65gdp" class="sref">>blef">ipfirst_block_nle32_to_cpu" "line" namue=Le32_to_cpu#L1="s="s#L164" ireet4_ext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc)02"20lass="line" namuees=L182">o182>stauees>uc)02"20lass="line" nac#Lfioe==metebug=L182">o182>nac#Lfioe==mete>(struc)(pa href="+codnamue=L165">7166f">s_i7b_6er>startp/a>, pa href7"+6od7co60152">o152pla#elseclass="line" namue=L165">7166f4>s_i7b_6epa href="+code=block7gr6up70e68ef">inode_clusterp>blef">ipfirst_block_nt4_ext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc)02"20lass="line" nas=_gss_cou/a04" ide2L104nas=_gss_co18a    a href="+code=block_group"7166f5>s_i7b_6ehp/a>->pa href="+7od6=b70s64l cla s="sref">b_datap/a>); 2a 7cl64/ball7c.6#L105" ide2L105"2clas7="6in7" 60line" namue=L155">o155p/a>} sbp/a>, pa h7ef62070s66l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L140" id7cl648ball7c.6#pa href="+code=block7gr6  70o66           * blocks.p/spaln 2aaaL118">o1bgass=_#L14-1ss="linof amue=s use="ay ep:cg8poficlaid2incg8ppp>oref="f2/ext4/balloc.c#L140" id7166 check7it6s="commng">&qis lesgh7ma6 u70s66o prevent allocao2o p/spaln 2aaaaaa@href_grou2" id2"f2/"ilesystem>oref="f2/ext4/balloc.c#L140" id7166hpal c7as6sizaentfes al ae=setl7ck6 i71 59 block group.  If itp/spaln 2aaaaaa@g8ppp:cg8ppp1ss="linto st4/b>oref="f2/ext4/balloc.c#L140" id7cl6h1  4f7/e6 o        * tofes al 7o 6 i71r67l class="comment">/*p/spal4/b>oref="f2/ext4/balloc.c#L140" id7cr6 2  4f7e"6namue=L91">o 91p/a>ps7al6cl71=67l class="comment">/*p/spaln 2aasaaaRf">ip e2L1ss="linof amue=s use="ay ep:cg8p"2clriptaa"fficl4/b>oref="f2/ext4/balloc.c#L140" id7c66f">s_i7a>6 pa href="+code=block7gr6up71d59l class="comment">/*p/spalnnnnnnid2(primary " nbackss="s/ e2"s 18pppI">ip efuaRfe>ip fe>mayill a4/b>oref="f2/ext4/balloc.c#L140" id7c66f4>s_i7f"6bhp/a>->pa href="+7od6=b71c55l class="comment">/*p/spalnnnnnndibloc*p/e2L1ss="lin"2clriptaa"of amuees2imarae=e18ppp" namue=L147">o147*iwhes"a 2mment7sr6e=gdp"7cl6ss="sref">gdpp/a>, pa7hr6f=71c55l class="comment">/*p/spaln aa href="f2/ext4/balloc.c#L146" id7166s/ball7c.6block_groupp/a>, pa h7ef6"+7od61=i1c0140">o140long0{ o1bgass=_#L1="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structo>startp/a> = pal48"2a>    "line" namue=L118">o118ppppppppppppppppppppppnam18pppext4/balloc.c#Lg8ppp>o18>pa href="+code=sb" class=7166s7ball7c.6balloc.c#L116" ide2L176"61l71d69"linede=s_itb_per_group" class=7166s8ball7c.6/balloc.c#L117" ide2L7176217as61de=sb" cla1c0140">o140long0{ o182>c#Lfioe==mete>(st =nede=s_itb_per_group" class=7166 check7it6if the bloctpal sum i7he6 u7ed61de=bh" class="srefespock_groulass="line" le32_to_cpu" "line" namue=Le32_to_cpu#L1="s="s#L164" ireet4_ext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc)02"20lass="line" namuees=L182">o182>stauees>uc)02"20lass="line" nac#Lfioe==metebug=L182">o182>nac#Lfioe==mete>(struc)(pa href_per_group" class=7sr6esess=7co6   * c     " cla     7it6 f7le62ass="sref"ue=140">o140long0{ o18./ulass="line" namext4_DESC_PER_="+co" class="sref">ext4_DESC_PER_="+co="s=">startp/a> = pa hrs_in_groupp/a>(struc)(pa href="+codnamue=L165">7166namue=7176">o17t*heck to ses al7a 6er7gr62ss="sref">s_blocksizep/a>); super_blockp/a> *p7 h6ef7"+62gdp" classs="">b_!{ ext4_HINRO_COMPAT_FEATURE" class="sref">ext4_HINRO_COMPAT_FEAT#L1="s="s#L164" iree_esc" cclusters="s=">staroulass="line" namext4_FEATUINRO_COMPMETA_BEBUG" class="sref">ext4_FEATUINRO_COMPMETA_BEllu\n 5).||f2/ext4/balloc.c#L146" id7166e">sbp7a>6> pa href="+code=bloc7_g6ou7" 62ass="sref">block_grouuuuuung0{ o182>c#Lfioe==mete>(sto18>pa href="+code=sb" class=7166es="sr7f"64_group_descp/a> *pa 7re6="7co62ef">inode_clusterp>blef">ipfirst_block_ns/ertp/abgass=_gdb=nometaline" namue=L118">o1bgass=_gdb=nometa="s="s#L164" iree_esc" cclusters="s=">startp/a> = pa href="+coed =rrorp/llu,rrorp/llu\nuc)(pa href="+codnamue=L165">71r6e=gdp"7cl6balloc.c#L124" ide2L174"6cl72o66l clas="sref">b_datap/a>); 2a 7166e/ball7c.6a href="+code=block_g7ou6" 72s58"line" namue=ef">ipfirst_block_ns/ertp/abgass=_gdb=metaline" namue=L118">o1bgass=_gdb=meta="s="s#L164" iree_esc" cclusters="s=">staroulass="line" ="+coed =rrorp/llu,rrorp/llu\nuc)(pa href="+codnamue=L165">7166s7ball7c.6block_groupp/a>, pa h7ef6"+7od62ssc)(pa href="+codnamue=L165">7166s8ball7c.6balloc.c#L127" ide2L177"6cl7ss628lcla s="sref">b_datap/a>); 2a 7166gcheck7it6/balloc.c#L128" ide2L72862272a68p read-only flag. */p/spaln 2a7166129"227la6s="line" namue=L89">o78 6  73 59 block group.  If itp/sp/a> 2 href="f2/ext4/balloc.c#L146" id7166 *bloA7om6ent">        ains=ser7"r6 c73r67l class="comment">/*p/spalnT/ e2funnsacomue=ef"seup/e2L1ss="linouwhiilesystdb=m80"d ee clusteaou/a       * tofes al al somment">/*7166 lass=7sr6 * toamueitials,=1ofe7 a6 c73=67l class="comment">/*p/spalnup/ebeginni0lolinaach"amue=e18   cee di0loup/ene"res">ogdteta "linu/a       * tofes al al somment">/*7166e">sbp7th6 allocaoaFor cal iomm7nt6> 73c67l class="comment">/*p/spaln aa href="f2/ext4/balloc.c#L146" id7166133"237la6s="line" namue=L83">o7836  7ps63" clast>o1c0140">oipfirst_block_ns/ertbgasbaseoe==me" cclustersext4/balloc.c#L16bgasbaseoe==me" cclusteta="s="sref">block_groupp/a> == pat pa href="+code=ext4_groua> == pat pa >ext4>num_clusters_in_groupp/a>(structass="sref">blocksp/a>; gdpp/aaaaaaock_grouuuuuung0{     "line" namue=L118">o118pppppppppppppppppppppps=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(sto18>pa href="+code=sb" class=7166= clas7="6ommen to ses aleitial7Fo6  73s59l clade=s_itb_per_group" class=7sr6=7ball7c.6     rmall ad162"> me7or6  7ps63ss="sref">="ssref">block_groupp/a> rtpb_info  "line" namue=L118"pb_info== pat pa >ext4>num_cluo" iref="+code=eluoppp>o18 href="+code=ext4_ext4_So" class="sref">ext4_So="s=">startp/a> = pa hrs_in_groupp/a>(struc)(pa href="+codnamue=L165">716618ball7c.6 c (    o_anddill_er 7f)6> 73s61de=sb" cla1c0140">os=">startp/a> =o" num=L182">o182>stanum>uc)(pa href="+codnamue=L165">7166gcheck7xt6="line" namue=L88">o 78 6er73a68p read-only flag. */p/spaln 2a7166f="f2/7xt6/balloc.c#L139" ide2L7396237as64ass="sref"ref" namue=L129">o129p/a>Co st id2"ref_grou2" an>ogdtet nbacsss="s/ e2"s 18aln aa href="f2/ext4/balloc.c#L146" id716640"24l7ss6"line" namue=L170">o17/*6  74r57ef">inode_clus129">o129p/s/enum=L182">o182>stanum>o18 href="+code=exs/ertp/abgahas_.c#L1line" namue=L118">o1bgahas_.c#L1="s="s#L164" iree_esc" cclusters="s=">startp/a> = pa hrefs=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(stouc)(pa href="+codnamue=L165">7re6kc-ll 7d=6comment">       2eom 7is6  7ps64s" class="sref">blocksp/a>;              r ofs=7co6  7ps64ass="sref"s="">b_!{ ext4_HINRO_COMPAT_FEATURE" class="sref">ext4_HINRO_COMPAT_FEAT#L1="s="s#L164" iree_esc" cclusters="s=">stagroulass="line" namext4_FEATUINRO_COMPMETA_BEBUG" class="sref">ext4_FEATUINRO_COMPMETA_BEllu\n 5).||f2/ext4/balloc.c#L146" id7cl6lock_g7ou63p/a>   gimmensee if 7he6  74o62ef">inode_clustp/a> = pa hrefs=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(sto18.de2Lppppppppppppple32_to_cpu" "line" namue=Le32_to_cpu#L1="s="s#L164" ireeluo" iref="+code=eluoppp>uc)02"20lass="line" namuees=L182">o182>stauees>uc)02"20lass="line" nac#Lfioe==metebug=L182">o182>nac#Lfioe==mete>(str *.||f2/ext4/balloc.c#L146" id7c66      7 w6_  cla">      ek to s7e 6  74s62" class="sref">gdpp/aaaaaaocs="s#L164" ireeluo" iref="+code=eluoppp>uc)02"20lass="line" na"2cla == pat pa href="+code=exa"2cla == pat p>(str clade=s_itb_per_group" class=7re6k clas7="6         "comment">  7  6  74s69=i" class="sref">is="">b_ef="+code=exs/enum=L182">o182>stanum>o clade=s_itb_per_group" class=7rr6=7ball7f"6"line" namue=L146">o176 6er74c67ss="sref">s_blocksrefsref"clus129">o129p/s/enum=L182">o182>stanum>o18 +href="+code=ext4_16p/abgass=_etaline" namue=L118">o1bgass=_#L1="s="s#L164" iree_esc" cclusters="s=">startp/a> = pa hrefs=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(stouc)(pa href="+codnamue=L165">7r6618ball7th6f">super_blockp/a> *p7 h6ef74c67de=sb" class="sref">scksizclus129">o129p/s/enum=L182">o182>stanum>o18 +href="+code=exle16_to_cpu" "line" namue=Le16_to_cpu#L1="s="s#L164" ireeluo" iref="+code=eluoppp>uc)02"20lass="line" namuees=L182">o182>stauees>uc)02"20lass="line" nane"res">ss=teta="linesext4/balloc.nane"res">ss=teta="li>(stouc)(pa href="+codnamue=L165">7r66gcheck7xt6> pa href="+code=bloc7_g6ou74d61de=bh" class="srefcla s="sref">b_datap/a>); 2a 7cl6sb" 2L73469">o149p/a>pspal clas7="6om75s64ass="sref"}pla#e {"ref" namue=L129">o129p/a>Fd2"META_BEPER_="PER_GRSaln aa href="f2/ext4/balloc.c#L146" id7re6s0"24l7ss6">sbp/a>)->pa href7"+6od75c58s" class="sref">s_espL185">o185p/s/enum=L182">o182>stanum>o18 +href="+code=ext4_16p/abgass=_etaline" namue=L118">o1bgass=_#L1="s="s#L164" iree_esc" cclusters="s=">startp/a> = pa hrefs=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(stouc)(pa href="+codnamue=L165">7sr6sc-ll 7d=6 pa href="+code=block7gr6up7 c65gdp" classcla s="sref">b_datap/a>); 2a 7cr64comme7th6" ide=L152" class="li7e"6na7ue65ass="sref">blef">ipfirst_block_nf">exNUMxt4_=2C=L182">o182>staexNUMxt4_#L1="s="s#L164" ireeluo" iref="+code=eluoppp>artp/a> = pa hrefs/enum=L182">o182>stanum>ouc)(pa href="+codnamue=L165">7sl6lock_g7ou6OCKS_PER_GROUPp/a>(pa7hr6f=7+c65l cla s="sref">b_datap/a>); 2a 7re6s     7 w6">sbp/a>), pa href="+7od6=b75c55l class="comment">/*p/spaln 2a href="f2/ext4/balloc.c#L140" id7re6s clas7="6balloc.c#L155" ide=L175"6cl75g57l class="comment">/*p/spaln 2aaaL118"st_in/to_goaleta="l -">blef">"f2icou/a="rou2" aL140erv>o 2a href="f2/ext4/balloc.c#L140" id7rr6=7ball7f"6/balloc.c#L156" ide=L7566 c75s66l class="comment">/*p/spaln 2   @st_in: st_inu/a="rou2" aL140erv>o 2a href="f2/ext4/balloc.c#L140" id7r6618ball7th6ent">/* Initializes a7 u6in75o66           * blocks.p/spal 2a href="f2/ext4/balloc.c#L140" id7r66gcheck7xt6f">buffer_headp/a> *p7 h6ef75s66o prevent allocao2o p/spaln 2aaaaaaRf">ip eideal 140erv>o"linstart aL140ervng"of amue/a="a4/b>oref="f2/ext4/balloc.c#L140" id7166group_7p/6> pa href="+code=bloc7_g6ou76 59 block group.  If itp/spaln 2aaanewly cre" i> st_innu/a       * tofes al al somment">/*7sr6"sref"7ex64_group_descp/a> *pa 7re6="76r67l class="comment">/*p/spaln aa href="f2/ext4/balloc.c#L146" id7166"">sbp7a>6balloc.c#L161" ide=L171"6cl7ss66gd+href="+code=ext4_16ss=ef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" clarest_in/to_goaleta="lfs/ext4/balloc.c#L16st_in/to_goaleta="leta="s="sref">block_groupp/ pa> ext4/">ext4_group_fiin/ at pa >ext4>num_c pa> ext4/">ext4_group_fiin/  f="f2/ext4/balloc.c#L146" id71r64comme7th6>bitp/a>, pa href="+c7de6bi7_m66asclade=s_itb_per_group" class=7cl6SB" cl7ss6"sref">EXT4_SBp/a>(pa7hr6f=76o62ef">inode_="ssref">block_groupp/a> rtst_in/info  "line" namue=L118"st_in/infoin/ at pa >ext4>num_ceo" iref="+code=eeoppp>o18 href="+code=ext4_ext4_Iline" namue=L18ext4_I="s=">startp/a> = pa> ext4/">ext4_group_fiin/  uc)(pa href="+codnamue=L165">7re6S to s7fe6"sref">startp/a>, pa 7re6="76s63" class="srefL166">o166p/ pal48"2a>    "line" namue=L118">o118pppppppppppppppppppppps=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(stuc)(pa href="+codnamue=L165">7re6s clas7="6  int pa href="+code=7le6_b76663" class="srefL166">o166p/ pal48"p=ef="fs/ext4/balloc.c#L168"p=ef="ppppppppppppppppppppcolouc#L1line" namue=colouc>(stuc)(pa href="+codnamue=L165">7rr6=7ball7ss6/balloc.c#L166" ide=L7666 c76c67ss="sref">bh"p/a>{ ext4_groflex_siz num>o18 href="+code=exs/ertflex_>o1siz ext4/">ext4_gros/ertflex_>o1siz #L1="s="s#L164" ireet4_ext4_So" class="sref">ext4_So="s=">startp/a> = pa> ext4/">ext4_group_fiin/    02"20lass="line" nami= hrs_in_groupp/a>i= htr uc)(pa href="+codnamue=L165">7r6618ball7th6buffer_lockedp/a>(pa 7re6="76s688line" namue=L166">o166p/a> lass=ef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" co1started =rrorp/llu,rso1start>(stuc)(pa href="+codnamue=L165">7r66gcheck7xt6/balloc.c#L168" ide=L7686 c76a599line" namue=L185">o185p/a> 12ss=ef="fs/ext4/balloc.c#L164" ide=L164" cl="+code=sb" extteta="lfs/ext4/balloc.extteta="l>(stuc)(pa href="+codnamue=L165">72L6 If ch7ck6um is bad mark all bl7ck6 u77n65 blocs="sref">b_datap/a>); 2a 7e26 sref"7ex6entially implementing7a 6er77r57ef">inode_clus129">o129p/s=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(sto18 href="+code=exso" iref="+code=eeoppp>   02"20lass="line" nas=a>, ="+coed =rrorp/llu,rnas=a>, ="+co>(stuc)(pa href="+codnamue=L165">7266"">sbp7a>6ock_groupp/a>, pa hre7="6co77+62gdp" classs=""/a>{ ext4_groflex_siz num>o  0218 href="+code=ext4_exFLEX_SIZE_DIR_ALR_=_SCHEMTURE" class="sref">exFLEX_SIZE_DIR_ALR_=_SCHEMTnum>o clade=s_itb_per_group" class=7> 6=* @sb73p6 pa href="+code=block7gr6up77m66ass="sref">block_grock group.  If itp/sp/a> 2 href="f2/ext4/balloc.c#L146" id72L6 B" cl7ss6sref">sbp/a>, pa href7"+6od77c55l class="comment">/*p/spaaaaaaaaaaaaaaaaa* If>ip fe>afe>at lextt f">exFLEX_SIZE_DIR_ALR_=_SCHEMTnu2 href="f2/ext4/balloc.c#L146" id72e6S to s7fe6sref">sbp/a>, pa href7"+6od77c55l class="comment">/*p/spaaaaaaaaaaaaaaaaa* ch"amue=e18s _.c#flexe=e18  ne"res">ip ef#Lfi ta="l>(2 href="f2/ext4/balloc.c#L146" id72e6s clas7t46sref">sbp/a>, pa href7"+6od77g57l class="comment">/*p/spaaaaaaaaaaaaaaaaa* "s 18a/a="directories an>ospecial f2/"i.aaaagular>(2 href="f2/ext4/balloc.c#L146" id72r6=7ball7ss6;pa href="+code=s_blo7ks6ze77s66l class="comment">/*p/spaaaaaaaaaaaaaaaaa* f2/"i2"s wistart at"ay e2econ>och"amue=e18.aaT/ e>(2 href="f2/ext4/balloc.c#L146" id726618ball7f"6ss="sref">gdpp/a>, pa7hr6f=77o66           * blocks.p/spaaaaaaaaaaaaaaaaa* tends"linspei> g8p"irectory access an>oimprovee>(2 href="f2/ext4/balloc.c#L146" id7266gcheck7xt68" class="line" namue7L168"77s66o prevent allocao2o p/spaaaaaaaaaaaaaaaaa* fsamutimeinu/a       * tofes al al somment">/*71664/ball7c.6#L179" ide=L179" clas7="6in78 59 block group.  If itp/spaaaaaaaaaaaaaaaaa*n aa href="f2/ext4/balloc.c#L146" id71664sref"7ex6;pa href="+code=s_blo7ks6ze78c58s" class="sref">s_espL185">o185p/s=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(sto1p;ha= ~"/a>{ ext4_groflex_siz num>-1 uc)(pa href="+codnamue=L165">7re64"sref7>b6/balloc.c#L181" ide=L7816 c78c65gdp" class="sref">s=""/a>{ ext4_group_fiin/    02"20lass="line" nama> ext4/">ext4_grouama> = htr c)(pa href="+codnamue=L165">7r 6=* @sb73p6 pa href="+code=block7gr6up78 62ass="sref">block_grouuuuuung0{ , ="+co>(st++uc)(pa href="+codnamue=L165">7rL6 B" cl7ss6f">bit_maxp/a>; pa hr7f=6+c7de68ef">inode_cla s="sref">b_datap/a>); 2a 7sr6c to s7fe6bhp/a>->pa href="+7od6=b78s63" class="srefL166">o166p/co1started =rrorp/llu,rso1start>(sto18 href="+code=ext4_laso118pc#Lfios=a>, no  "line" namue=L118"so118pc#Lfios=a>, no_So="s=">startp/a> = pa> ext4/">ext4_group_fiin/    02"20lass="line" nami= hrs_in_groupp/a>i= htartp/a> = pa hrefs=a>, ="+coed =rrorp/llu,rs=a>, ="+co>(stouc)(pa href="+codnamue=L165">7sr6c"fs/e7t46/balloc.c#L185" ide=L7856 c78663" class="srefL166">o166p/extteta="lfs/ext4/balloc.extteta="l>(sto18 href="+code=exs/ertpl_"lines_cou/a04" ide2L104"2claee_"lines_cou/a="s=">startp/a> =t4_ext4_So" class="sref">ext4_So="s=">startp/a> = pa> ext4/">ext4_group_fiin/    02"20lass="line" nami= hrs_in_groupp/a>i= htruc)02"20lass="line" namuees=L182">o182>stauees>ruc)4-11(pa href="+codnamue=L165">716646"2cl7ss6 pa href="+code=block7gr6up78d62ssc)(pa href="+codnamue=L165">71664s="sr7f"6/balloc.c#L187" ide=L7876 c7as688line" namuock group.  If itp/sp/a> 2 href="f2/ext4/balloc.c#L146" id71664="f2/7xt6T_FLEX_BG" class="sre7">6XT78s66o prevent allocao2o p/spaaaaaaaaa* If>we>afe>dovng"delayi> aL140erv>o,>we>don't nei> takl4/b>oref="f2/ext4/balloc.c#L140" id7hr6p/a>  7  6  int pa href="+code=7le6_b79 59 block group.  If itp/spaaaaaaaaa* colouc>bh"o accs_conu/a       * tofes al al somment">/*7sr6psref"7ex6t4/balloc.c#L90" id1e7L961 79r67l class="comment">/*p/spaaaaaaaaa*n aa href="f2/ext4/balloc.c#L146" id7166e="fs/7xt6    *, For the alloca7a 6er79+62gdp" classs=""/a>{ startp/a> = pa> ext4/">ext4_group_fiin/    02"20lass="line" nami= hrs_in_groupp/a>i= htartp/a> = pa hrefDELALR_== hrs_in_grouppDELALR_== htr c)(pa href="+codnamue=L165">7166e;sbp/a>, pa h7ef6"+79 62ass="sref">block_g>blef">ipfirst_block_noo1started =rrorp/llu,rso1start>(stuc)(pa href="+codnamue=L165">7re6elass=7sr6 pa href="+code=block7gr6up7 c69ef">is="sref">b_datap/a>); 2a 7re6es="sr7f"6bhp/a>->pa href="+7od6=b79562gdp" classs=""/a>{ ext4_="+coS_PER_GROUP="s=">startp/a> = pa> ext4/">ext4_group_fiin/    02"20lass="line" nami= hrs_in_groupp/a>i= htro18.de2refL166">o166p/extteta="lfs/ext4/balloc.extteta="l>(st c)(pa href="+codnamue=L165">71r6c"fs/e7t46t4/balloc.c#L95" id1e7L96197as69=i" class="sref">ipppppppppppppppcolouc#L1line" namue=colouc>(sto18"s=">startp/a> =c  Curr#L1line" namue=c  Currin/    02"20lass="line" pid#L1line" namue=pid>(sto1,rro 16r *.||f2/ext4/balloc.c#L146" id7sr6e=sb" 7la6s="sref">sbp/a>, pa h7ef6"+79c67ss="sref">s_blocksrefsref""s=">startp/a> =t4_ext4_="+coS_PER_GROUP" class="sref">ext4_="+coS_PER_GROUP="s=">startp/a> = pa> ext4/">ext4_group_fiin/    02"20lass="line" nami= hrs_in_groupp/a>i= htro/ 16ruc)(pa href="+codnamue=L165">7r664s="sr7f"6 pa href="+code=block7gr6up7 c69e=bh" clasla#elseclass="line" namue=L165">7ue=LE_INC7MP5bhp/a>->pa href="+7od5=b79167de=bh" class="sre_pppppppppppppppcolouc#L1line" namue=colouc>(sto18"s=">startp/a> =c  Curr#L1line" namue=c  Currin/    02"20lass="line" pid#L1line" namue=pid>(sto1,rro 16r * ("s=">startp/a> =extteta="lfs/ext4/balloc.extteta="l>(sto->ipfirst_block_noo1started =rrorp/llu,rso1start>(stro/ 16ruc)(pa href="+codnamue=L165">8cl6    4f8/e6t4/balloc.c#L99" id1e8L961980 68ass="sref">blef">/a>{ (stuc)(pa href="+codnamue=L165">8cl6 1  4f8/e6t4/balloc.c#L90" id1e8L96"+80c68s" cl s="sref">b_datap/a>); 2a 8hr6 2  4f8/e6t   *, For the alloca8a 6+c80s64s" class="sref">blocksp/a>; s_i8b_6er>startp/a>, pa href8"+6od8co6015


startfooter"> The original LXR softwafe>e="ay eclass="srhttp://soucceforge.net/projects/lxr">LXR t">/unity= htars/ e2experi/*p/al versv>o"e="class="srmailto:lxr@p/aux.no >lxr@p/aux.no= ht.
startsubfooter"> lxr.p/aux.no kindly host use="class="srhttp://www.redpill-p/apro.no >Redpill L/apro AS= htarprovids="linL/auxbbbbsulrvng"an>oopererv>os "resices "ince 1995.