linux/fs/block_dev.c
<<
>>
Prefs
   1/*
   2 *  linux/fs/block_dev.c
   3 *
   4 *  Copyright (C) 1991, 1992  Linus Torvalds
   5 *  Copyright (C) 2001  Andrea Arcangeli <andrea@suse.de> SuSE
   6 */
   7
   8#include <linux/init.h>
   9#include <linux/mm.h>
  10#include <linux/fcntl.h>
  11#include <linux/slab.h>
  12#include <linux/kmod.h>
  13#include <linux/major.h>
  14#include <linux/device_cgroup.h>
  15#include <linux/highmem.h>
  16#include <linux/blkdev.h>
  17#include <linux/module.h>
  18#include <linux/blkpg.h>
  19#include <linux/magic.h>
  20#include <linux/buffer_head.h>
  21#include <linux/swap.h>
  22#include <linux/pagevec.h>
  23#include <linux/writeback.h>
  24#include <linux/mpage.h>
  25#include <linux/mount.h>
  26#include <linux/uio.h>
  27#include <linux/namei.h>
  28#include <linux/log2.h>
  29#include <linux/cleancache.h>
  30#include <asm/uaccess.h>
  31#include "internal.h"
  32
  33struct bdev_inode {
  34        struct block_device bdev;
  35        struct inode vfs_inode;
  36};
  37
  38static const struct address_space_operations def_blk_aops;
  39
  40static inline struct bdev_inode *BDEV_I(struct inode *inode)
  41{
  42        return container_of(inode, struct bdev_inode, vfs_inode);
  43}
  44
  45inline struct block_device *I_BDEV(struct inode *inode)
  46{
  47        return &BDEV_I(inode)->bdev;
  48}
  49EXPORT_SYMBOL(I_BDEV);
  50
  51/*
  52 * Move the inode from its current bdi to a new bdi. If the inode is dirty we
  53 * need to move it onto the dirty list of @dst so that the inode is always on
  54 * the right list.
  55 */
  56static void bdev_inode_switch_bdi(struct inode *inode,
  57                        struct backing_dev_info *dst)
  58{
  59        struct backing_dev_info *old = inode->i_data.backing_dev_info;
  60
  61        if (unlikely(dst == old))               /* deadlock avoidance */
  62                return;
  63        bdi_lock_two(&old->wb, &dst->wb);
  64        spin_lock(&inode->i_lock);
  65        inode->i_data.backing_dev_info = dst;
  66        if (inode->i_state & I_DIRTY)
  67                list_move(&inode->i_wb_list, &dst->wb.b_dirty);
  68        spin_unlock(&inode->i_lock);
  69        spin_unlock(&old->wb.list_lock);
  70        spin_unlock(&dst->wb.list_lock);
  71}
  72
  73/* Kill _all_ buffers and pagecache , dirty or not.. */
  74void kill_bdev(struct block_device *bdev)
  75{
  76        struct address_space *mapping = bdev->bd_inode->i_mapping;
  77
  78        if (mapping->nrpages == 0)
  79                return;
  80
  81        invalidate_bh_lrus();
  82        truncate_inode_pages(mapping, 0);
  83}       
  84EXPORT_SYMBOL(kill_bdev);
  85
  86/* Invalidate clean unused buffers and pagecache. */
  87void invalidate_bdev(struct block_device *bdev)
  88{
  89        struct address_space *mapping = bdev->bd_inode->i_mapping;
  90
  91        if (mapping->nrpages == 0)
  92                return;
  93
  94        invalidate_bh_lrus();
  95        lru_add_drain_all();    /* make sure all lru add caches are flushed */
  96        invalidate_mapping_pages(mapping, 0, -1);
  97        /* 99% of the time, we don't need to flush the cleancache on the bdev.
  98         * But, for the strange corners, lets be cautious
  99         */
 100        cleancache_invalidate_inode(mapping);
 101}
 102EXPORT_SYMBOL(invalidate_bdev);
 103
 104int set_blocksize(struct block_device *bdev, int size)
 105{
 106        /* Size must be a power of two, and between 512 and PAGE_SIZE */
 107        if (size > PAGE_SIZE || size < 512 || !is_power_of_2(size))
 108                return -EINVAL;
 109
 110        /* Size cannot be smaller than the size supported by the device */
 111        if (size < bdev_logical_block_size(bdev))
 112                return -EINVAL;
 113
 114        /* Don't change the size if it is same as current */
 115        if (bdev->bd_block_size != size) {
 116                sync_blockdev(bdev);
 117                bdev->bd_block_size = size;
 118                bdev->bd_inode->i_blkbits = blksize_bits(size);
 119                kill_bdev(bdev);
 120        }
 121        return 0;
 122}
 123
 124EXPORT_SYMBOL(set_blocksize);
 125
 126int sb_set_blocksize(struct super_block *sb, int size)
 127{
 128        if (set_blocksize(sb->s_bdev, size))
 129                return 0;
 130        /* If we get here, we know size is power of two
 131         * and it's value is between 512 and PAGE_SIZE */
 132        sb->s_blocksize = size;
 133        sb->s_blocksize_bits = blksize_bits(size);
 134        return sb->s_blocksize;
 135}
 136
 137EXPORT_SYMBOL(sb_set_blocksize);
 138
 139int sb_min_blocksize(struct super_block *sb, int size)
 140{
 141        int minsize = bdev_logical_block_size(sb->s_bdev);
 142        if (size < minsize)
 143                size = minsize;
 144        return sb_set_blocksize(sb, size);
 145}
 146
 147EXPORT_SYMBOL(sb_min_blocksize);
 148
 149static int
 150blkdev_get_block(struct inode *inode, sector_t iblock,
 151                struct buffer_head *bh, int create)
 152{
 153        bh->b_bdev = I_BDEV(inode);
 154        bh->b_blocknr = iblock;
 155        set_buffer_mapped(bh);
 156        return 0;
 157}
 158
 159static ssize_t
 160blkdev_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov,
 161                        loff_t offset, unsigned long nr_segs)
 162{
 163        struct file *file = iocb->ki_filp;
 164        struct inode *inode = file->f_mapping->host;
 165
 166        return __blockdev_direct_IO(rw, iocb, inode, I_BDEV(inode), iov, offset,
 167                                    nr_segs, blkdev_get_block, NULL, NULL, 0);
 168}
 169
 170int __sync_blockdev(struct block_device *bdev, int wait)
 171{
 172        if (!bdev)
 173                return 0;
 174        if (!wait)
 175                return filemap_flush(bdev->bd_inode->i_mapping);
 176        return filemap_write_and_wait(bdev->bd_inode->i_mapping);
 177}
 178
 179/*
 180 * Write out and wait upon all the dirty data associated with a block
 181 * device via its mapping.  Does not take the superblock lock.
 182 */
 183int sync_blockdev(struct block_device *bdev)
 184{
 185        return __sync_blockdev(bdev, 1);
 186}
 187EXPORT_SYMBOL(sync_blockdev);
 188
 189/*
 190 * Write out and wait upon all dirty data associated with this
 191 * device.   Filesystem data as well as the underlying block
 192 * device.  Takes the superblock lock.
 193 */
 194int fsync_bdev(struct block_device *bdev)
 195{
 196        struct super_block *sb = get_super(bdev);
 197        if (sb) {
 198                int res = sync_filesystem(sb);
 199                drop_super(sb);
 200                return res;
 201        }
 202        return sync_blockdev(bdev);
 203}
 204EXPORT_SYMBOL(fsync_bdev);
 205
 206/**
 207 * freeze_bdev  --  lock a filesystem and force it into a consistent state
 208 * @bdev:       blockdevice to lock
 209 *
 210 * If a superblock is found on this device, we take the s_umount semaphore
 211 * on it to make sure nobody unmounts until the snapshot creation is done.
 212 * The reference counter (bd_fsfreeze_count) guarantees that only the last
 213 * unfreeze process can unfreeze the frozen filesystem actually when multiple
 214 * freeze requests arrive simultaneously. It counts up in freeze_bdev() and
 215 * count down in thaw_bdev(). When it becomes 0, thaw_bdev() will unfreeze
 216 * actually.
 217 */
 218struct super_block *freeze_bdev(struct block_device *bdev)
 219{
 220        struct super_block *sb;
 221        int error = 0;
 222
 223        mutex_lock(&bdev->bd_fsfreeze_mutex);
 224        if (++bdev->bd_fsfreeze_count > 1) {
 225                /*
 226                 * We don't even need to grab a reference - the first call
 227                 * to freeze_bdev grab an active reference and only the last
 228                 * thaw_bdev drops it.
 229                 */
 230                sb = get_super(bdev);
 231                drop_super(sb);
 232                mutex_unlock(&bdev->bd_fsfreeze_mutex);
 233                return sb;
 234        }
 235
 236        sb = get_active_super(bdev);
 237        if (!sb)
 238                goto out;
 239        error = freeze_super(sb);
 240        if (error) {
 241                deactivate_super(sb);
 242                bdev->bd_fsfreeze_count--;
 243                mutex_unlock(&bdev->bd_fsfreeze_mutex);
 244                return ERR_PTR(error);
 245        }
 246        deactivate_super(sb);
 247 out:
 248        sync_blockdev(bdev);
 249        mutex_unlock(&bdev->bd_fsfreeze_mutex);
 250        return sb;      /* thaw_bdev releases s->s_umount */
 251}
 252EXPORT_SYMBOL(freeze_bdev);
 253
 254/**
 255 * thaw_bdev  -- unlock filesystem
 256 * @bdev:       blockdevice to unlock
 257 * @sb:         associated superblock
 258 *
 259 * Unlocks the filesystem and marks it writeable again after freeze_bdev().
 260 */
 261int thaw_bdev(struct block_device *bdev, struct super_block *sb)
{
 250        retur>sban class="commente*filp" class="sref">ki_fi2p2
sban class=" 254ho2t26 223        mutex_lock(&bdev-> 265 242                bdev->class="sref">super_block bdev:    ffset" class="sref">offs2t2
 238                goto f="+code=2ULL" class="sref">NULL, 0)26 12826 269 224        if (++bdev->->wa2t27 238                goto "L171" cl2ss="line" name="L171"> 12127bd2v2
 237        if ="L173"> 273                re2urn 027 238                goto " 254wa2t27i_mappin2)27 239  ine"  class="line" name="ine"  clas      deactivate_supere=i_mappi2g" class="sref">i_mappin2)27 240        if ( 12727 118             (++bdev->++="sref">deactivate_supereL168" cl2ass="line" name="L178"> 278 249        mutex_unlock(&bdev-> 179/*2/span28 247 > 1822span class="comment"> */2/span28 249        mutex_unlock(&bdev-> 2de=bdev" class="sref">bd2v28 12428bdev, 1)2
 252 1262
sync_blockde2)28 261int , struct block_device259, struct  237        if ="L188" c2ass="line" name="L188"> 288/*2/span29 252nr_segs,  261int int block_deviceef="_bdev" class="sef="="L2/ablock_deviceef="_bdev" class="sef="="L2e="L237"> 237        if > 1932span class="comment"> */2/span29bd2v29 252nr_segsea href="+code=bd_fsfreeze_mul="+code=2ss="line" name="L195"> 12529bde2)29sb2/a>) 29 261int int block_deviceaddress_spaaw_bdev" class="saddress_spaaw"L163"int bclass="sref">iov, s2)2
 161                  po="line" name="L2po="L16="s="sref">lock_dev.c#L223sen_bdev" class="ssen"L16="s="sref">lock_dev.c#L223fla67"> 167     fla67f">bclass="sref">iov, s3)3
block_deviceef="_bdev" class="sef="="L2/aa>, struct , struct  167     fs" na="L2e="L237"> 237        if3r3s30 201  3     3
 252bc                po="line" name="L2po="L16="lock_dev.c#L223sen_bdev" class="ssen"L16="lock_dev.c#L223fla67"> 167     fla67f">bcblock_deviceef=")30nr_segsea href="+code=bd_fsfreeze_m3"L203" cl3ss="line" name="L203"> 2333
fsync_bde3)3
 305 151<   261int int block_deviceaddress_spaaw_bdev" class="saddress_spaaw"L163"int bclass="sref">iov,  2063span class="comment">/**3/span30 161                  po="line" name="L2po="L16="s="sref">lock_dev.c#L223sen_bdev" class="ssen"L16="s="sref">lock_dev.c#L223copiss="line" name="Lcopissf">bclass="sref">iov, 82063sode=sb" class="sref">sb3/span30block_deviceef="_bdev" class="sef="="L2/a252 167     fs" na="L2e="L237"> 237        if3<92063scode=sb" class="sref">s3/span30 209 *3/span31re38"> 238                goto3ce, we ta3e the s_umount semaphore3/span31re38"> t; 151< .c#L returenn52"> 252bc                po="line" name="L2po="L16="lock_dev.c#L223sen_bdev" class="ssen"L16="lock_dev.c#L223copiss="line" name="Lcopissf">bcblock_deviceef="_bdev" class="sef="="L2="lock_dev.c#L223fs" na"> 167     fs" na="L2e238                goto3cass="lin3apshot creation is done.3/span31 2_ef="_bdev" class="s49"> 2_ef="52"> 252                goto3cL203" cl3m actually when multiple3/span31 252                goto3csync_bde3 up in freeze_bdev() and3/span31re38"> 238                goto3c 2063s="comment"> * actually.3/span31 2173span class="comment"> */3/span31bd3v31 23932 246 llseek: id="L189" class="line" name="L183"e, we ta3"+code=sb" class="sref">3b32  speciallass=lass=ef">mf_efth.dc#Lryef">mv" clasef">mi_0"> 130/* If we get3"+code=er3or" class="sref">error = 032 1by hname(just"> 1in re.c#Lread/ retu above)span class="comment">/* If we get3"nt) guar3ass="line" name="L222"> 322bd_fsfreeze_mute3)3
 161                  e" namllseekame="L151"> 151< .c#Lllseek="L261"> 261int int  161                        block_device 237        if3ss="sref"3bd_fsfreeze_count &g3; 1) 32/*3/span32 164        t(inode *inode = file->f_mapping-><3 grab a r3ference - the first call3/span327a href="fs/block_dev.c#L154s="line" name="L161"> 161                  locksize(f_mapping-><3  2173erence and only the last3/span32 161                  re3vass="line" name="re3vascode="sref">f_mapping-><3 href="+c3   * thaw_bdev drops it.3/span32                 */3/span3
 223        bdev->->bde3)33 143        i_0"> Lreadode=bdev" classiv0"> Lread52"> 252(s3)33bd_fsfreeze_mute3)33sban class3n 3b3
 240        if ( 234  3     33 2473="L235" c3ass="line" name="L235"> 335           ocksize(f_mapping-><3href="+co3e=bdev" class="sref">bde3)33f_mapping-><3h 2173"+code=sb" class="sref">3b3
SEEK_CUna hr"line" name="L247"> 2473=href="+c3code=out" class="sref">o3t33           *inodef_mapping-><3(s3)34SEEK_SETa hr"line" name="L247"> 2473f="+code=3rror" class="sref">error3/a>) 3
f_mapping-><3(s3)3
 2473fex" clas3"sref">bd_fsfreeze_count3/a>--3
 238                goto3tex" clas3="sref">bd_fsfreeze_mute3)3
erro3)3
3block_dev.c#L223                 ocksize( 240        if ( 245  3     34           *inode 240        if (s3)34 *inode 143                              goto3t 2173code=out" class="sref">o3t34bde3)34                goto3tex" clas3="sref">bd_fsfreeze_mute3)3
 "line" name="L247"> 2473"L251" cl3ss="line" name="L251"> 23135 249        bdev->->freeze_bde3)35f_mapping-><3="L253" c3ass="line" name="L253"> 353 2543span class="comment">/**3/span35ass="lin3ev  -- unlock filesystem3/span3
 151<   261int int  161                  starne" name="L161">starnass=="block_dev.c#L15s="line" name="L161"> 161                  enname="L151"> 151enn52">assref">block_device<" nas="same="L151"> 151" nas="s="L2e="L237"> 237        if3@bdev:   3   blockdevice to unlock3/span3
 240        if ( 164        t(inodeinode = file->f_mapping-><3"> 258 *3/span359a href="fs/block_dev.c#L196" id="L="+code=thaw_bdev" class="sref">thaw_bdev(struct inodeb, inode="/a>( 2603span class="comment"> */3/span361a href="fs/bf="fs/block_dev.c#L186" id3 *3b36 239           return inodeinode = starnass=="block_dev.c#L15enname="L151"> 151enn52">36 237        if3"commente3filp" class="sref">ki_fi3p36 2543de=host" class="sref">ho3t36 365offs3t36 226NULL, 0)36 13836  haw_bdocks the filesystem and marks it w3="L169" c3ass="line" name="L169"> 369wa3t37 239  <   151<  inode="+code=block_device" class="ss="sref">inodeGFP_KERNE"comy ="c_
inodeNUL"comy ="c_
 131372a href="fs/block252 237        if3 href="+c3de=bdev" class="sref">bd3v37 373                re3urn 037sban class3" 2543de=wait" class="sref">wa3t37i_mappin3)37i_mappin3)37 187 151<   13737 378 179/*3/span38 * Write out and wait upon 3"href="+c3 associated with a block3/span38 1823span class="comment"> */3/span38                  DEFINE_SPINLOCKa href="+code=iDEFINE_SPINLOCK" class="sref">inode="+c"L223" class="line" ="+c"L223="L2 3de=bdev" class="sref">bd3v38v.c#L118" id="L118" _cache                  _Lreadrmostlya href="+code=i__readrmostly="L2a href="+code=bd_fsfreeze_m3"L184" cl3ss="line" name="L184"> 13438bdev, 1)386a href="fs/lock_dev.c#L196" id="L164" class="line" name="L164"> 164        t<" _   oc/a>(( 261int bdev, struct super_block 13638 240        if (sync_blockde3)38( 164        ei0" class="line" iname="L239"> 239  kmem_cache_   oc" class="line" kmem_cache_   oc" class="sref">inode="+c"cache  ="ss="sref">inodeGFP_KERNE"comy ="c_
 388super_block 189/*3/span39a href="+code=bd_fsfreeze_m3ll dirty 3ata associated with this3/span39inode(a href="+code=bd_fsfreeze_m3loes not 3 as the underlying block3/span39 1933span class="comment"> */3/span39 261int  164        headode=bdev" classhead164"class="sref">super_blockbd3v39 13539 164        164" class="line" name="L164">"L239"> 239  contame=r_ofclass="line" nacontame=r_of" class="sref">inodeheadode=bdev" classhead164"="sref">block_device164" class="line" name="L164"="ss="sref">inodei_rcuode=bdev" classivrculassbde3)397a href="fs/block_dev.c#L196" id="Lev" _a>( 164        bdi0" class="line"bdi164">"L239"> 239  node_I0" class="line"node_I" class="sref">inode164" class="line" name="L164"sb3/a>) 39s3)39b" class="line" kmem_cache_f">b" class="sref">inode="+c"cache  ="ss="sref">inodebdi0" class="line"bdi164"s4)4
r4s40(( 261int  164        164" class="line" name="L164"class="sref">super_block)40 24340bdev->inodebd" _a_    bafs href="+code=bdev" _m_    bafs="L2bd4)40 405bde4/span40, struct super_blocksb4/span40s4/span409a href="fs/block_dev.c#L196" id="L=v" _a>( 164        ei0" class="line" iname="L61"> 261int ( )L239"> 239   oohref="+code=fileoo164"a href="+code=bd_fsfreeze_m4"> 209 *4/span41thaw_bdev(struct         inode<="+code=block_device" classa href="+code=bd_fsfreeze_m4"a href="4e the s_umount semaphore4/span41inode="+code=block_device" class="0,ss"> of(>(struct         mutex_unlock(&af="+code=bdev" class="s->mutex_unlock(&ame="L="line" name="L2(&ame="L=>mutex_unlock(&alif="+code=f_mappin(&alif=> * actually.4/span417a href="fs/block_dev.c#L154INIT_LIST_HEAD+code=iocb" claINIT_LIST_HEAD="L26>        mutex_unlock(&ahold=r_disk="line" name="L2(&ahold=r_disk=> */4/span41bd4v41        inode( 24942bde.1" id="L193" class="line" name="L1934"e, we ta4"+code=sb" class="sref">4b42        mutex_unlock(&bdev->error = 042 422bd_fsfreeze_mute4)4
 261int  164        164" class="line" name="L164"class="sref">super_block &g4; 1) 42/*4/span42        bdev->bdev->a href="+code=bd_fsfreeze_m4  2174erence and only the last4/span42bdev-> = bdev-> 167      hh na52">a href="+code=bd_fsfreeze_m4 9L205" c4   * thaw_bdev drops it.4/span42                 */4/span4
bde4)43(( 261int  164        164" class="line" name="L164"class="sref">super_blocks4)43bd_fsfreeze_mute4)43thaw_bdev(struct         inode164" class="line" name="L164"< class="sref">inode<="+code=block_device" classa href="+code=bd_fsfreeze_m4n 4b4
(struct  234  4     43        bdev-> 167      hh na52">, 0 435inode164" class="line" name="L164"        return  > 22ed d=r ?1" id="L193" class="line" name="L1934href="+co4e=bdev" class="sref">bde4)437a href="fs/block_dev.c#L154clear_a>(inode164" class="line" name="L164"4b43o4t43 239  mutex_unlock(&ame="L="line" name="L2(&ame="L=>.utex_unlocknext        mutex_unlock(&ame="L="line" name="L2(&ame="L=> e0"> 240        if (s4)44block_device164" class="line" name="L164"="ss="sref">inodei_haw_bd="line" name="L2 hhaw_bd=><error4/a>) 44s4)44        mutex_unlock(&alif="+code=f_mappin(&alif=>bd_fsfreeze_count4/a>--44bd_fsfreeze_mute4)44erro4)44 245  4     446a href="fs/const"sref">block_device * 240        if (s4)44 239  simple_ef="fsclass="line" nasimple_ef="fs164"=> 240        if (4code=out" class="sref">o4t44( 239  (( 240        if (bde4)44( 239  (( 240        if (bd_fsfreeze_mute4)4
( 239  genericL19le46( 239  (( 240        if ( 24145freeze_bde4)45 453 261int  240        if (/**4/span45 167     fla67f">bcbconst"char> 164        v" _nt">ode=bdev" classdc _nt">f">bcbvoid/a>, struct  167     " na="L2e="L237"> 237        if4>ass="lin4ev  -- unlock filesystem4/span4
 240        if (-_pseudo     1">"ev" :"id="L19,9>        inodeNUL"comy ="c_
="ss="sref">inodenodeFS_MAGIC0" class="line"nodeFS_MAGIC="L2 258 *4/span45 240        if ( 2604span class="comment"> */4/span461a href="fs/b.utex_unlocknt">ode=bdev" classnt">f">bs/block_dev=b2250     1">"ev" "id="L19,> 240        if (4b46->/block_dev=b264        t46 239  kill_anon_s* 240        if ("L253" c4filp" class="sref">ki_fi4p46ho4t46 465bdev, struct b&e="ss="sref="+code=bdev" claef">b&e="ss="sref="="L2>164        _Lreadrmostlya href="+code=i__readrmostly="L2a href="+code=bd_fsfreeze_m4 bdev:   4ffset" class="sref">offs4t46NULL, 0)46 237        if4"L168" cl4ss="line" name="L168"> 14846 469wa4t47 164        tf_mapping-><4"L171" cl4ss="line" name="L171"> 14147bd4v47   "L239"> 239  kmem_cache_creat>ode=bdev" classkmem_cache_creat>="L26v250     1">"ev" _cache"id="L19,9s"> of(1"> 261int ( 240        if ( 473                re4urn 047SLAB_RECLAIM_ACCOUNTa hr|> 240        if (4de=wait" class="sref">wa4t47 240        if (i_mappin4)47i_mappin4)477a href="fs/block_dev.c#L154="L href="+code=bdare="L2 "L239"> 239  register_163"system href="+code=bdregister_163"system="L26>         14747 237        if4eL168" cl4ass="line" name="L178"> 478"Cannot register ev"  pseudo-fm"id="L19 179/*4/span48 239  kern/m="+code=bdev" classkern/m="+c="L26>        IS_ERn="L26v.c#L220" id="Lt 237        if4Does not 4ake the superblock lock.4/span48"Cannot creat> ev"  pseudo-fm"id="L19 */4/span48b&e="ss="sref="+code=bdev" claef">b&e="ss="sref="="L2>=b264        tmutex_unlockmnc_ef="+code=super_bmnc_eflass= /b2250        return  4de=bdev" class="sref">bd4v48 14448bdev, 1)486a href="fs/block_dev.c#L189" id="L189" class="line" name="L184"=i_mappi4ss="line" name="L186"> 14648sync_blockde4)48 226really large oneocks the filesystem and marks it w4"L168" cl4ass="line" name="L188"> 488 will"b=la226 189/*4/span49long/               hasheeode=iocb" clahash="L26v.c#L220" id="L&e="code=bdev" class&e="c="L2v.c#L118" id="L1de=mutex_unlock" cass="sre="L237"> 237        if4loes not 4 as the underlying block4/span49MAJOn="L26v.c#L220" id="L&e=mutex_unlock" cass="sre+v.c#L176" id="LMINOne" name="L244">MINOn="L26v.c#L220" id="L&e=mutex_unlock" cass="srea href="+code=bd_fsfreeze_m4> 1934span class="comment"> */4/span49bd4v49 145496a href="fs/blo                 &e="cef="+code=f_mappin(&e="cef=>61"> 261int  164        164" class="line" name="L164"cbvoid/a>, struct  167     " na="L2e="L237"> 237        if4href="+co4e=bdev" class="sref">bde4)49 240        if (sb4/a>) 498a href="fs/block_dev.c#L176" id="Lnode_I0" class="line"node_I" class="sref">inode164" class="line" name="L164"< class="sref">inode<="+code=block_device" class.utex_unlock="s"+code=block_device"_" classcl= *6v.c#L220" id="L&e="code=bdev" class&e="c="L2v*)>, struct  167     " na="L2a href="+code=bd_fsfreeze_m4>L168" cl4+code=sb" class="sref">s4)49s5)50r5s501a href="fs/blo                 &e="    261int  164        164" class="line" name="L164"cbvoid/a>, struct  167     " na="L2e="L237"> 237        if5<2 href="5cas the underlying block5     50)50inode164" class="line" name="L164"< class="sref">inode<="+code=block_device" class.utex_unlock="s"+code=block_device"_" classcl *6v.c#L220" id="L&e="code=bdev" class&e="c="L2v*)>, struct  167     " na="L2a href="+code=bd_fsfreeze_m5"L203" cl5ss="line" name="L203"> 25350bd5)50 505bde5/span50sb5/span50s5/span509a hrlock_dev.c#L220" id="L="+code=thaw_bdev" class="sref">thaw_bdev(struct  237        if5"> 209 *5/span51thaw_bdev(struct  261int  164        164" class="line" name="L164"a href="+code=bd_fsfreeze_m5c3ss="lin5ntees that only the last5/span51"L239"> 239  ig  5"L223edode=bdev" classig  5"L223ed="L26v.c#L220" id="Ltf">b&e="ss="sref="+code=bdev" claef">b&e="ss="sref="="L2="ss="sref">inodehasheeode=iocb" clahash="L26v.c#L220" id="L&e=mutex_unlock" cass="sre,> 240        if (inodebd" _            * actually.5/span517a href="fs/block_dev.c#L237" id=164" class="line" name="L164"class="sref">super_block */5/span51a href="+code=bd_fsfreeze_m5c9L205" c5de=bdev" class="sref">bd5v51 25952        inode164" class="line" name="L164"< class="sref">inode<="+code=block_device" classa href="+code=bd_fsfreeze_m5"e, we ta5"+code=sb" class="sref">5b52error = 0522a href="fs/block252bdev->I_NEW164" 240        if ( 522mutex_unlock(&acontame="line" name="L2(&acontame=164">"L239"> 239  NUL"comy ="c_
a href="+code=bd_fsfreeze_m5tex" clas5="sref">bd_fsfreeze_mute5)52mutex_unlock(&as*"L239"> 239  NUL"comy ="c_
a href="+code=bd_fsfreeze_m5t5203" cl5bd_fsfreeze_count &g5; 1) 52mutex_unlock(&aa>(inode164" class="line" name="L164"a href="+code=bd_fsfreeze_m5         5/*5/span52mutex_unlock(&abd_fsf ocksize(bdev->mutex_unlock(&apartaco"+code=bdev" class="spartaco"+cs="scla> 221        int 5erence and only the last5/span52mutex_unlock(&aa>valid246dode=bdev" class(&aa>valid246ds="scla> 221        int bdev->4" class="line" namh>4" s="sclass="sref">inodeS_IFBLKa href="+code=iS_IFBLK164"a href="+code=bd_fsfreeze_m5lass="com5ent">                 */5/span53bdev->inode&e=mutex_unlock" cass="sra href="+code=bd_fsfreeze_m5le, we ta5e=bdev" class="sref">bde5)531a href="fs/block_devv.c#L196" id="L164" class="line" name="L164"ref">bdev->s5)53bdev-> 167      hh na52">.utex_unlock _op="line" name="L2 _op=lasscla>        bd_fsfreeze_mute5)53        bdev-> 167      hh na52">, bdev->GFP_USEn="srea href="+code=bd_fsfreeze_m5n 5b53bdev-> 167      hh na52">.utex_unlockbafsss="d" _mefo         234  5     53 535        mutex_unlock(&alif="+code=f_mappin(&alif=>,9>        bde5)535"+code=sb" class="sref">5b53((inode164" class="line" name="L164"o5t53s5)54error5/a>) 54s5)54bd_fsfreeze_count5/a>--54 187bd_fsfreeze_mute5)54sban class5ef="+code5error" class="sref">erro5)54 245  5     546a href="fs/block_dev.c#L18 * ="grab -- Grab ab.cferess="  haw_bd id="L189" class="line" name="L185lref="+co5+code=sb" class="sref">s5)54  haw_bd"o5t54bde5)549a hrlock_dev.c#L220" id="L="+code=thaw_bdev" class="sref">thaw_bdev(struct  efck_dev.c#L220" id="L="+code=thaw_bdev" class="sref">thaw_bdev(struct super_blockbd_fsfreeze_mute5)55 187mutex_unlock(&aa>( 251552a href="fs/b.c#L200" id="L200" cla="+code=block_device" classa href="+code=bd_fsfreeze_m5eeze_bdev5 class="sref">freeze_bde5)55 553sban class5tf="+code5span class="comment">/**5/span55b"+c"ef="="line" name="L2nsref">b"+c"ef="=87"> voide="L237"> 237        if5>ass="lin5ev  -- unlock filesystem5/span5
 240        if (thaw_bdev(struct  221        int  258 *5/span55 187inodebdalif="+code=f_mappin(&alif=> 240        if ( 2605span class="comment"> */5/span561a href="fs/block_devv.c#L196" id="Lr   239  mutex_unlock(&ame="L href="+code=bdev" class="sref">bdev-> = bdev->a href="+code=bd_fsfreeze_m5i5b56eze_bdev5ss="line" name="L2="sre25256"L253" c5filp" class="sref">ki_fi5p56ho5t56 565offs5t56 efck_dev.c#L220" id="L="+code=thaw_bdev" class="sref">thaw_bdev(struct super_blockNULL, 0)56 15856 187mutex_unlock(&aa>( 569wa5t57 15157 187bd5v57                re5urn 057thaw_bdev(struct  efck_dev.c#L220" id="L164" class="line" name="L164"> 164        164" class="line" name="L164"class="sref">super_block5de=wait" class="sref">wa5t57i_mappin5)57thaw_bdev(struct i_mappin5)57 15757 578bdev-> 179/*5/span58 240        if ( 187mutex_unlock(&aa>( */5/span58 5de=bdev" class="sref">bd5v58 15458bdev, 1)58 156587a href="fs/block_dev.c#L154t<+code=block_device" classclav.c#L196" id="L="g  bdev->sync_blockde5)58 240        if ( 588 189/*5/span59bdev-> 240        if ( */5/span59 via ref">i" class= alwayscks the filesystem and marks it w5>L184" cl5de=bdev" class="sref">bd5v59 155596a href="fs/block_dev.c#L18 888888888888888888888888* id="L193" class="line" name="L1935href="+co5e=bdev" class="sref">bde5)59 187mutex_unlock(&aa>(sb5/a>) 59bdev->s5)59bdev-> =  239  mutex_unlock(&ame="L href="+code=bdev" class="sref">bdev-> = s6)60        bdev->mutex_unlock(&ame="L="line" name="L2(&ame="L=>r6s601a href="fs/block_devef="fs/block_dev.c#L186" id6<2 href="6cas the underlying block6     60)60 */6360bd6)60 605bde6/span60 efck_dev.c#L220" id="L *bdev, struct super_blocksb6/span60s6/span609a href="fs/block_de" id="L200" claef="+code=super_bsb164"cl= v.c#L196" id="Le"+code="ss="sref="+code=bdev" claef">b&e="ss="sref="="L2a href="+code=bd_fsfreeze_m6"> 209 *6/span61( 164        164" class="line" name="L164"class="sref">super_blockthaw_bdev(struct "L239"> 239  NUL"comy ="c_
a href="+code=bd_fsfreeze_m6c7L205" c6s="comment"> * actually.6/span61 */6/span61bd6v619a href="fs/block252bdev-> 240        if ( 26962 252bdev->)e="L237"> 237        if6"e, we ta6"+code=sb" class="sref">6b621a href="fs/block_devlock_dev.ock_dev.c#L239t<+code=block_device" classclav.c#L196" id="L164" class="line" name="L164"ref">bdev->error = 062 622bd_fsfreeze_mute6)62 &g6; 1) 62/*6/span62 187mutex_unlock(&aa>(6erence and only the last6/span62                 */6/span63bde6)631a href="fs/block_dev.c#L18 * ="_may_/blim - cef= whather aent">  haw_bdec"fsb=l/blim6ds=d="L189" class="line" name="L186l+code=er6+code=sb" class="sref">s6)63  haw_bdeof a>teref=&gd="L189" class="line" name="L186lnt) guar6="sref">bd_fsfreeze_mute6)63  haw_bdecontamess= @ev" , may equal @ev" &gd="L189" class="line" name="L186lex" clas6"+code=sb" class="sref">6b63 234  6     63 635bde6)636b63o6t63    ="+c"L223)ocks the filesystem and marks it w6(s6)64error6/a>) 641a href="fs/block_dev.c#L18 * RETURNS:cks the filesystem and marks it w6(+code=er6+code=sb" class="sref">s6)64bd_fsfreeze_count6/a>--64bd_fsfreeze_mute6)64(&amay_/blim href="+code=bdev"may_/blim="L26efck_dev.c#L220" id="Le"+code=thaw_bdev" class="sref">thaw_bdev(struct thaw_bdev(struct erro6)64 245  6     64 240        if (s6)647a href="fs/block187mutex_unlock(&aholder_bdev" class="s(&aholder164"cl= v.c#L196" id="Lholder_bdev" class="sholderlasscef="fs/block_dev.c#L205" i6l 2176code=out" class="sref">o6t64bde6)649a href="fs/belsdelock187mutex_unlock(&aholder_bdev" class="s(&aholder164"c!"L239"> 239  NUL"comy ="c_
cef="fs/block_dev.c#L205" i6tex" clas6="sref">bd_fsfreeze_mute6)65mutex_unlock(&acontame="line" name="L2(&acontame=164">"la239"> 239   26165freeze_bde6)65 653mutex_unlock(&aholder_bdev" class="s(&aholder164"cl= v.c#L196" id="L(&amay_/blim href="+code=bdev"may_/blim="L2cef="fs/block_dev.c#L205" i6t5203" cl6span class="comment">/**6/span65mutex_unlock(&aholder_bdev" class="s(&aholder164"c!"L239"> 239  NUL"comy ="c_
cef="fs/block_dev.c#L205" i6tref="+co6   blockdevice to unlock6/span65 *6/span65 2606span class="comment"> */6/span666b66eze_bdev6ss="line" name="L2="sre26266  haw_bd id="L189" class="line" name="L186>"L253" c6filp" class="sref">ki_fi6p66  haw_bdeof a>teref=&gd="L189" class="line" name="L186>f="+code6de=host" class="sref">ho6t66 665offs6t66NULL, 0)66 16866 669wa6t671a href="fs/block_dev.c#L18 * .c#L20, the caller has ownershipeof (&acblimss= name(&aholder[s]ocks the filesystem and marks it w6"L171" cl6ss="line" name="L171"> 16167bd6v67                re6urn 067    ="+c"L223)o  Might release ="+c"L223, sleep1nameregrab87s the filesystem and marks it w6=f="+code6de=wait" class="sref">wa6t67i_mappin6)676a href="fs/block_dev.c#L18 *cks the filesystem and marks it w6"bdev:   6g" class="sref">i_mappin6)67 16767 678 179/*6/span68thaw_bdev(struct thaw_bdev(struct  */6/span68bd6v68 16lock_dev.c#L199" id="L1sad="Le"+co; 240 2e="L19"Le"+co; 240'5 as the underlying block5/span59b6eva href="+code=bd_fsfreeef">bdev<6a>->bd6v68thaw_bdev(t="L_queue_h200f"devvvvvvvvvvvvvvvvlockq>thaw_bdev(tqef">6b621a href="fb"L_t="Lqueuedelock187mf">bdev-> 240  6/span656a hrefDEFINE_WAITdelock187thaw_bdev(t="L= "e=mutex_unlock" class="sref">m"fs/block6devlock_dev.f="fs/block_6ev.c#69) 54thaw_bdev(>/*6/span68t="Llock_dev.c#L199" id=tq>thaw_bdev(tqef">ass="line" name="L164"t="L>thaw_bdev(t="L= "elock5/span59thaw_bdev(TASK_UNIit RRUPTIBLE= "e=mutex_unlock" class="sref">m"8(bd_fsfreeze_mute6)62 via ref">i" cl6ss= a69_mefolassa href="+code=bd_fsfreeze_m5chedus="lin6ev  -- unl5chedus=e_mutne" nasass"L249" ="L26>      o=bd_fsfre88888888888888888* witho6t igr69L223="L2thaw_bdev(tqef">ass="line" name="L164"t="L>thaw_bdev(t="L= "ene" nasass"L249" ="L26>      oe_m5""L16ev.c#L18 888888888888888688888688* id="L193" class="le=bd_fsfreeze_mL186"e_m6c8L205" c6span class="comment"> */6/span61-&7t->r6s601a h7ef="f70class="s)55sban class5ef="+code5error" class="sr7e_m6(52037 cl6se=bdev" class="sref7>bd6<709"" id="L189" class="line" name=a hrde=m666 670_bd id="L189" class="line" name="L185>"L253" c6filp" class="sref">ki_fi6p66bde7, struct  665 665b&7="ss=71bincks the filesystem and mark6 665 *6/71ful id="L189" class="line" namexclusivelyfs/blmarkbdev" L18exclusivesppekf="fs/ks it w6="L1Each5"> 665 665err"bade=m6ki_fi6p66o6t63 167        164" class="7ine" 71v" &gd="L189" class="line" name="L186l5203" cl6" name="L234"> 7 */5="ft9e26266"L739"> 239  NUL"comy =7c_
 669exclusivesppekfattempt/5="fsref. Isref">ki_fi6p66bde75" c6s="comment"> * actu7lly.671NS:cks the filesystem and markslas200"ecu/spad6cast9e2ppekfsequ hrefitselfrefw_bdes>exclusiveref">ki_fi6p66 */5bss=subsequ ht9ki_fi6p66bdev->b7ev->bd7ref">bdev7/a>->ki_fi6p66ki_fi6p66 622<7a62i_mappin7  ho of="fs/blo, ERR_PTR()bdev:   6g" class="sref">i_mappin7 /a6c52037" cl6bd_fsfreeze_count &g67288" id="L189" class="line" namvalue ULLur767(&aa>(                re5urn 057tha7e_m6  2177/a>6erence and only the 7ast6/76ds="scla> 221                                  _bdev" class="sref">thaw_bdev(struct super_bloc7     */6/7pan63bd_fsfreeze_mutedi>bpareuperblock5/span55  haw_bdec"f7b=l/b7ice" classa hr6"href="+c6 associated with a block6/span681a href="fs/block_devvvvvvvvvvvvvvvvlock_dev.c#L196" id="Le"+code=thuperblock5/span55  haw_bde7f a>t7k_aop=lassa hr class="line" name=0" in href="+code=baf0" in = "elock5/span59(struct )55(struct )60bde67/a>)6367    7"+c"L723)ocks the filesystem and maaaaaaaaar="sockelassak_dev.f="fs/block_dev.7"sref">s67/a>)64bd_fsfreeze_mutedi>bpare6b621a href="fget_gendi>bd_fsfreeze_muteget_gendi>block_dev.c#L199" id="L1sad="Le"+co; 240ystem6/span656a href="fL1sad="Le"+co; 2_240 2"> */6/span61, s7ruct b()bdev:   6g" class="sref">i_mappin7" i6lass=7lin6" name="L245"> 245  6 7w_bd id="L189" class="line" naaaaaaaarkcla0" in n" c0; however,253"  drivers (floppy)cu/sit w6=f="bdev:   6g" class="sref">i_mappin7"ef">bde67196" id="Lholder_bdev" c7ass="7"i_mappin7"_m6  2177ock_dev.c#L22/* alreadyb7 hold74XT:cks the filesystem and maaaaaaaaarksliase="L1Kf="f6i_mappin7r164"c!"L739"> 239  NUL"comy =7c_
i_mappin7rsref">s67dev.c#L22/* held by some7ne el75ful id="L189" class="line" naaaaaaaar e=y67"la739"> 239  freez7_bde675USEn="srea href="+code=bd_fsfreeze_mk_dev.c#L196" id="Le"+code=th" name="L186"> 1565_di>bd_fsfreeze_mute5_di>block_dev.c#L199" id=di>bd_fsfreeze_mutedi>bpare, 0=mutex_unlock" class="sref">76" id="L(7amay_/blim href="+code=b7ev"ma7_/blim="L2cef=class="line" name="L1936t 217<7"foneof a7haw_bd" 156 240=mutex_unlock" class="sref">76 i6lass=739"> 239  NUL"comy =7c_
a href="+code=bd_fsfre7ev.c#L22/7 isba parti"foneof a hel7 haw_75pan61bd_fsfreeze_mutedi>bpareystem6/span656a hreffopsdelock187=mutex_unlock" class="sref">76_m6  2177ciated superblock6/span67bd_fsfreeze_mutedi>bpare=mutex_unlock" class="sref">7#L22/* is7a parti"foneof an un-hel7 haw_76_e" classa href="s="line" name="Lk_dev.c#L196" id="Le"+code=thnassak_dev.f="fs/block_dev.71936iteab7e a6ain after freeze_bde7().6/7lif=> 240  e=bd_fsfreeze_m5"href=ERR_PTR"fsb=l/blim6d baRR_PTRlock_-ck5/span597#164">"la76span class="comment7> */676) 546b7/a>66  h76ref="fs/bef="fs/block_dev.c#L186"e_m6c8L205" c6span class="comment"> */6/span61  haw_bde7f a>t76L223="L2(struct  156 179/*6/span68 240'5 as the underlying block5/span59 240        if ((struct offs6766 240'5 as the underlying bystem6/span656a href="f66 156ef="fc"fsb=l/blim6d by @ho2    "line" sass"L223="L26>     7k_m6  2177bfunc"fon failsbloc@ev" 7isbal76" classcL"> 240        if (bd_fsfreeze_mute6)62cef="fs/block_dev.c#L205" i6tex" ck_dev.c#L196" id="Le"+code=thuperblock5/span55 2}e=bdev" class="line" name="L164"r7as owners7ipeof (&acblimss= name(&7holde77block_devef="fs/block_dev.c#L186" id6<2 href="6cas the underlying block6     60 16767        if ((struct (struct bd_fsfreeze_mutebblim=" class="line" name="L164"r7L178"> 677s6h200d_fsfreeze_mutef">s6h200ef="fs/bef="fs/block_dev.c#f">sd_fsfreeze_mutef">se=thuperblock5/span55bd_fsfreeze_mutedi>bpareuperblock5/span55 167ot 6ake the superblock l7ck.6/7pan68<}uperblock5/span55bd_fsfreeze_mutebblim=7bd_fsfreeze_mutebef="fs/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=thaw_bdev" class="sref">tha7e=bd_fsfr7eze_m5h 2175"+code=s7" cla78L223="L2bd_fsfreeze_mutedi>bparenassak_dev.f="fs/block_dev.7ze_m5""L175" c5dev" class="sref">b7ev)67->bd_fsfreeze_mutebblim=7s6for_each_endev.c#L262" id6"hrf">s6for_each_endevlock_a>        if (bdev->bsdelock187sd_fsfreeze_mutef">se=thnassak_dev.f="fs/block_dev.7f">bdev-> 240  40        if ( 156di>bd_fsfreeze_mutedi>bparenassak_dev.f="fs/block_dev.7"fs/block7devlock_dev.f="fs/block_7ev.c#79block_devef="fs/blockkkkkkkkke=bd_fsfreeze_m5"href=ef="fc"fsb=l/blim6d by @ho2    "line" sass"L223="L26>     7 We takea7n addi"fonalb.cferess="<7aev" 79_aop=lassa hre=bd_fsfreeze_m5"href=sref">thaw_bdev(struct ( via ref">i" cl7ss= a79L223="L2(&aa>(        if (-&8t->r6s601a h8ef="f80olderlasscef="fs/block_dev.c#L208          if ( 680_bd id="L189" class="line" nam hr888b_di>brf="fs/ - create sym888bvsbetweekff="fhrefdi>b"s/blslavesbd165"> 665bde8, struct  665bde8b5"> 665b&8="ss=81bincks the filesystem and mar5"> 665 *6/81ful id="L189" class="line" namDONblockT USE THIS UNLESS YOUblockRE ALREADY USING IT676767b5="ft9e2= it w6 ="L165"> 665b5"> 665 239  NUL"comy =8c_
 665bde85" c6s="comment"> * actu8lly.681NS:cks the filesystem and markFoa>example,""L2/ock/dm-0 map/5="f/ock/sda"s/bldi>b5forkdm-0 is5"> 665bde8"+code="L223" class="lin8" ="+81adycks the filesystem and markplesspa cl hr888b_di>brf="fs/()6 hren"bdev:   6g" class="sref">i_mappin8f">bdev->b8ev->->ki_fi6p66 622<8a62ki_fi6p66ki_fi6p66 &g68288" id="L189" class="line" namlifecodelp" t9ese sym888bv6767bde8k(&aa>(8e_m6  2178/a>6erence and only the 8ast6/82adycks the filesystem and mark      ref=".ref">ki_fi6p66i_mappin8 - cef= w8ather aent">  haw_bdec"f8b=l/b8im6ds=d="L189" class="line" nam0 of="fs/blo, -errno ULLur767  haw_bde8f a>t8ref=&gd="L189" class="line" na="sockelassak_dev.f="fs/block_dev.8 1936c3ss8decontamess= @ev" , may 8qual 83>)55< class="line" name="L1888b_di>brf="fs/delock187brf="fs/ef="fs/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=tds/blo                 gendi>bd_fsfreeze_mutegendi>bpare_to_/blim="L26efcdi>bd_fsfreeze_mutedi>bparenassak_dev.f="fs/block_dev.8c#L228* @8older: holder tryss= tol8blim 8 _mefolasscef="fs/block_dev.c#L20834  68    63bd_fsfreeze_mutebblim=7bde68/a>)63 221        intmutex#L199" id="L1sass"L2mutex#L199    60    8"+c"L84lass=f="+code=bd_fsfreeze_m5h9L8"sref">s68/a>)64bde6)649a href="fs/belsdelock187b() handles>error=8r="sockelassak_dev.f="fs/block_dev.8/1936c3ss8>--64        if (bde6)649a href=0" ilsdelock187bde6)649a hrf="fs/_dic"fsb=l/blim6d by @ho2_dieSEn=n27ck_dev.c#L228*  href="+co8dev(s8ruct  245  6 8   64 2 156bd_fsfreeze_mutebef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=tdo_/blim="L26efcdi>bd_fsfreeze_mutedi>bparen"line" sass"L223="L26>     8oef">bde68196" id="Lholder_bdev" c8ass="8holderlasscef=40        if ( 240        if ( 239  NUL"comy =8c_
cef="fs/blocgosb:a href="fs/blocouthref="6cas the underlyouthref="6    "line" sass"L223="L26>     8rsref">s68dev.c#L22/* held by some8ne el8de* id="L193" lassa href="+code=bd_fsfree8=164">"la839"> 239   156kzallocd_fsfreeze_mutekzallocef="fsizeof(7thaw_bdevGFP_KERNEfparen"line" sass"L223="L26>     821936c3ss8clas6 class="sref">freez8_bde685USEn="srea hr40 239  NUL"comy =8c_
cef=lassa href="+code=bd_fsfree8=ef">bde68 isba parti"foneof a hel8 haw_8527*ckperblock5/span55 221        intINIT_LIST_HEADcas the underlyINIT_LIST_HEAD    60sd_fsfreeze_mutef">se=thn"line" sass"L223="L26>     8#L22/* is8a parti"foneof an un-hel8 haw_86L223="L2bd_fsfreeze_mutedi>bpare"line" sass"L223="L26>     8#sref">s68e a6ain after freeze_bde8().6/86>)55"la86span class="comment8> */686) 546b8/a>66 */6/span61bde6)649a href=0" ilsdelock187bde6)649a hrkobjd_fsfreeze_mutekobje=thn"line" sass"L223="L26>     8#1936c3ss8m - prepare tol/blim aen8">  h86USEn="srea hr40        if (  haw_bde8f a>t86wholelass,3" class="lgosb:a href="fs/blocouthfreo_/blim_bdev" clouthfreopare"line" sass"L223="L26>     8#id/a>, s8decontamess= @ev" , may 8qual 86>)60 2bde6)649a href=0" ilsdelock187bde6)649a hrf="fs/_dic"fsb=l/blim6d by @ho2_dieSEn= 2"> */6/span61brn68_dev.c#L220" id="Ldi>brn68_deef="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)ef">bde6)649a hrkobjd_fsfreeze_mutekobje=thn"line" sass"L223="L26>     8#ef">bde6866 240  gosb:a href="fs/blocouthdel_/blim_bdev" clouthdelpare"line" sass"L223="L26>     8er holder8namewaitsblocanother /bl8mss= 87rNUL"52">cef= (67 16867bde6)649a href=0" ilsdelock187bde6)649a hrf="fs/_dic"fsb=l/blim6d by @ho2_dieSEn=n"line" sass"L223="L26>     8L_dev.c#L8release ="+c"L223, sleep8namer87L223="L2s6addd_fsfreeze_mutef">s6add    60sd_fsfreeze_mutef">se=thass="line" name="L164"ref">bdev->bsdelock187 2gosb:a href="fs/blocouthref="6cas the underlyouthref="6    "line" sass"L223="L26>     8)67 */6/spa8L178"> 678 */6/span61bde6)649a href=0" ilsdelock187bde6)649a hrkobjd_fsfreeze_mutekobje=thn"line" sass"L223="L26>     8_bdev8struct  */6/spa8Ls owners8ruct )649a hrkfreo_/blim_bdev" clkfreopare/a>        if ( 168ot 6ake the superblock l8ck.6/8pan68 */6/spa8Le_to_/bl8d="L200" cla.c#ryode=bde8" cla88USEn="srea hrde6)649a hrmutex#ref="6cas the underlymutex#ref="6    605"+code=s8" cla886socklassa href="+code=bd_fsfree8ze_m5""L185" c5dev" class="sref">b8evthaw_bdevaXPORT_SYMBOL_GPfef="fo_/blim="L26efck_1888b_di>brf="fs/delock187brf="fs/ef="ne" nasass"L249" ="L26>     8_/a>)67->brf="fs/ - destroo sym888bvscreate6 9yl hr888b_di>brf="fs/() class5ef="+code5error" class="sr8 bdev8>-> 665b85hreff="fhrefdi>b5"> 665ki_fi6p66(67 via ref">i" cl8ss= a89v" &gd="L189" class="line" name="L186l5203" cl6" name="L234"> 8o=bd_fsfr888888888888888888* witho8t igr8988" id="L189" class="line" nams it w6h 2176"+code=sb" class="sref">8oe_m5""L18ev.c#L18 88888888888888888888889_bd id="L189" class="line" nam      ref=".ref">ki_fi6p66brf="fs/ef="fs/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=tds/blo                 gendi>bd_fsfreeze_mutegendi>bpare_to_/blim="L26efcdi>bd_fsfreeze_mutedi>bparenassak_dev.f="fs/block_dev.9dev-&9t; = super_bloc9d1v-&9t->bd_fsfreeze_mutebblim=7r6s601a h9ef="f90) 54)55 156bd_fsfreeze_mutebef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=tdo_/blim="L26efcdi>bd_fsfreeze_mutedi>bparen"line" sass"L223="L26>     9e_m6(52039 cl6se=bdev" class="sref9>bd6<90>)60 690  64 240 156sref">thaw_bdev(struct )2"> */"> */ !--ck5/span59bde9, struct  */6/span61bde6)649a href=0" ilsdelock187bde6)649a hrkobjd_fsfreeze_mutekobje=thn"line" sass"L223="L26>     9s9ef">bde9 240        if (bde6)649a href=0" ilsdelock187bde6)649a hrf="fs/_dic"fsb=l/blim6d by @ho2_dieSEn=thaw_bdev" class="sref">tha9e="ss="sr9f="+code=bdev" claef">b&9="ss=91rNUL"52">cef="fs/bloccccccccccccc"> */6/span61brn68_dev.c#L220" id="Ldi>brn68_deef="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)ef">bde6)649a hrkobjd_fsfreeze_mutekobje=thn"line" sass"L223="L26>     9e1v-&9 240  de6)649a hrkobjecs_r" id="L200" clav.kobjecs_r" ef="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=0" ilsdelock187bde6)649a hrf="fs/_dic"fsb=l/blim6d by @ho2_dieSEn=n"line" sass"L223="L26>     9ee=res" c9ef="6e the s_umount sema9hore691block_devef="fs/block_dev.c#L186" idf">s6del_=nitd_fsfreeze_mutef">s6del_=nit    60sd_fsfreeze_mutef">se=thn"line" sass"L223="L26>     9e (91_aop=lassa href="+code=bd_fsfreeze_mkfreo_/blim_bdev" clkfreopare/a>        if (        164" class="9ine" 91L223="L2bdev-> 239  NUL"comy =9c_
bde95" c6s="comment"> * actu9lly.691NS:cksk5/span59thaw_bdevaXPORT_SYMBOL_GPfef="fo_/blim="L26efck_1ref88b_di>brf="fs/delock187brf="fs/ef="ne" nasass"L249" ="L26>     9<9ef">bde9"+code="L223" class="lin9" ="+91adyck#endif" nasass"L249" ="L26>     9f">bdev->b9ev->-> 665ki_fi6p66 622<9a62ki_fi6p66 665 &g69288" id="L189" class="line" na5"> 665b. Itrslas200bef="+c6bref">ki_fi6p66bde9k(&aa>(ki_fi6p66bde9/a>6erence and only the 9ast6/92adycks the filesystem and markresize.ref">ki_fi6p66  haw_bdec"f9b=l/b93olderlasscef="fs/block_dev.c#L209    haw_bde9f a>t933e" classa hrclas6/span61 240ystem6/span656a href="fLi>bd_fsfreeze_mutebparenassak_dev.f="fs/block_dev.9Tef= what9er @ev" ec"fsb=l/blim6d 9y @ho9e" c=="srea hrlassa href="+code=bd_fsfreeze_mdi>br , m_/blim_bdev" cldi>br , mef="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=Li>bd_fsfreeze_mutebpare, 0tdo_/blim="L26efc , m_/blim_bdev" cl , mSEn=ne" nasass"L249" ="L26>     9ref">bde69/a>)63"VFS: busy in6efs5linchanged mediafor5""sockel" nasass"L249" ="L26>     9r9ef">bde9href="fs/block_dev.c#L229* CON93" classcL"> 240  f="+codea href="fs/bs/bhred>"resizebldi>b5%s\n""sockeltdo_/blim="L26efc , m_/blim_bdev" cl , mSEn=ne" nasass"L249" ="L26>     9/block_de9.c#L229* sass"L2236>    9"+c"L94rNUL"52">cef=lassa href="+code=bd_fsfree9"sref">s69/a>)64bde6)649a href=Li>bd_fsfreeze_mutebparenassak_dev.f="fs/block_dev.9oc@ev" ec9fsb=l/blim6d, %falsd9other94_aop=lassa href="+codfs/bloe" nasass"L249" ="L26>     9/1936c3ss9>--64        if (br0" iascan_enabc6b_/blim_bdev" cldi>br0" iascan_enabc6bef="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=Li>bd_fsfreeze_mutebparen27ck_dev.c#L228*  href="+co9dev(s9ruct bde6)649a href=inval hateb_/blim_bdev" clef=inval hateb    " n1"line" sass"L223="L26>     9oid/a>, s9ruct  245  6 94ce" classa href="+code=bd_fsfre9oef">bde69196" id="Lholder_bdev" c9ass="9427*cks the filesystem and mban class5ef="+code5error" class="sr9"_m6  2179ock_dev.c#L22/* alreadyb9 hold94adycks the filesystem and markchecb_di>brsize_change -kchecbs5forkdi>b5sizefchange s/bladjustskki_fi6p66 239  NUL"comy =9c_
b85s/blo  gendi>bme="Lhecbref">ki_fi6p66s69dev.c#L22/* held by some9ne el959"" id="L189" class="line" name="L185s/blo   d hr="fadjust.ref">ki_fi6p66 239  freez9_bde695XT:cks the filesystem and marks/bladjustskitr4067, s9haw_bd"brsize_changeef="fs/blo                 gendi>bd_fsfreeze_mutegendi>bpare_to_/blim="L26efcdi>bd_fsfreeze_mutedi>bparetds/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=27ck_dev.c#L228*  href="+co9r i6lass=939"> 239  NUL"comy =9c_
bde69 isba parti"foneof a hel9 haw_95class="sbrsize/ae=tdo_/blim="L26efck"L1rsize_/blim_bdev" clk"L1rsize/ae="line" sass"L223="L26>     96_m6  2179ciated superblock6/span69brsize_/blim_bdev" cldi>brsize/ae=" nf="line" name="Lfoff_sd_fsfreeze_mutefoff_spare)               get_capacity_/blim_bdev" clget_capacityef="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare) << 9"line" sass"L223="L26>     9#sref">s69e a6ain after freeze_bde9().6/96>)55 156irsize_r200d_fsfreeze_muteirsize_r200ef="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=ne" nasass"L249" ="L26>     9#164">"la96span class="comment9> */6962e" classa hrclas"+c6 associateddi>brsize_/blim_bdev" cldi>brsize/ae="! name="L186"> 1566b9/a>66  h96>)55  haw_bde9f a>t96wholelass,3" class="le=bd_fsfreeze_mdi>br , m_/blim_bdev" cldi>br , mef="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetd0tdo_/blim="L26efc , m_/blim_bdev" cl , mSEn=ne" nasass"L249" ="L26>     9#id/a>, s9decontamess= @ev" , may 9qual 96L223="L2"%s: detecte6 capacityfchange from %llpa cl%llp\n""sockelta href="fs/block_dev.c#L149kef">bde6966brsize_/blim_bdev" cldi>brsize/ae=ne" nasass"L249" ="L26>     9#_m6  2179bfunc"fon failsbloc@ev" 9isbal96" classcL"> 240  ame="L186"> 156irsize_write_/blim_bdev" clirsize_writeef="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=tdo_/blim="L26efcdi>brsize_/blim_bdev" cldi>brsize/ae=ne" nasass"L249" ="L26>     9er holder9namewaitsblocanother /bl9mss= 97rNUL"52">cef="fs/blocef="fs/block_deflush_di>bdelock187bef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=tdo_/blim="L26efcfalse_/blim_bdev" clfalse/ae=ne" nasass"L249" ="L26>     9esref">s6939;t actually /blim.  On9succe97e* id="L193" lassa href="+code=bd_fsfree9as owners9ipeof (&acblimss= name(&9holde9[s]ocklassa href="+code=bd_fsfree9asref">6b967thaw_bdevaXPORT_SYMBOLef="fo_/blim="L26efcchecb_di>brsize_change_/blim_bdev" clchecb_di>brsize_changeef="ne" nasass"L249" ="L26>     9e1936c3ss9href="fs/block_dev.c#L229* CON97>)55b - wrapper5forklower-level driverblocksmreval hatepai>b ="+c-bacbref">ki_fi6p66b85s/blo  gendi>bme="bemreval hatebref">ki_fi6p66ki_fi6p66bref">ki_fi6p66 679ki_fi6p66b opera="lis67 169ot 6ake the superblock l9ck.6/9pan68< class="line" name=reval hatepai>b_/blim_bdev" clreval hatepai>bre="fs/blo                 gendi>bd_fsfreeze_mutegendi>bpare_to_/blim="L26efcdi>bd_fsfreeze_mutedi>bpare27ck_dev.c#L228*  href="+co9Le_to_/bl9d="L200" cla.c#ryode=bde9" cla98USEn=" class="line" name="L164"r9_dev.c#L29/* if someone elsde/blim9d, fa9l9* id="L193" s/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=e" nasass"L249" ="L26>     9_ref="fs/9eze_m5h 2175"+code=s9" cla98L223="L2b9ev)67->        if (bd_fsfreeze_mutedi>bpareystem6/span656a hreffopsdelock187b_/blim_bdev" clreval hatepai>bre="27ck_dev.c#L228*  href="+co9L_m6  2179 240  ame="L186"> 156resd_fsfreeze_mutelisblim==ok_dev.c#L195" idi>bd_fsfreeze_mutedi>bpareystem6/span656a hreffopsdelock187b_/blim_bdev" clreval hatepai>bre="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)uperblock5/span559>->)55 156bd_fsfreeze_mutebef="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetd0)uperblock5/span55()55 via ref">i" cl9ss= a99_mefolassa hrck5/span59brsize_changeef="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetd="line" name="L19L205" c6e=bdev" class="sr2e" nasass"L249" ="L26>     9oe_m5""L19ev.c#L18 88888888888888898888899  64 2bde6)649a href=inval hateb_/blim_bdev" clef=inval hateb    " nsuperblock5/span55bdev-> 221        intbdr" id="L200" clav.bdr" ef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=ne" nasass"L249" ="L26>     10dev-&10dev<"L200" cla="+code=bl10dev>10des="scla> 221fs/block_dev.c#L195" iresd_fsfreeze_mutelisblime" /pre>
-&10devlock_dev.f="fs/block_10dev>10d2n68thaw_bdevaXPORT_SYMBOLef="fo_/blim="L26efcreval hatepai>b_/blim_bdev" clreval hatepai>bre="2e" nasass"L249" ="L26>     10d3v-&10d addi"fonalb.cferess="<10d a>10d3)55 via ref">i" cl10dcc>10drab87s the filesystem and marke9" croutwhikchecbs5whethss5a removabc6 mediaf=waibeekfchanged,sociated with this5/span591a href10d6v-&10d8888888888888888* witho10d88>10d88" id="L189" class="line" nams/blinval hates5all buffer-cache-endeies5inbdev" case.ke9" sociated with this5/span591a href10d7v-&10dv.c#L18 88888888888888810dv.>10d_bd id="L189" class="line" na " ca relatively slowcroutwhi, so we haves="ftrys="fminimize usingsociated with this5/span591a href10d8v-&10d(&aa>(-&10did="L200" cla="+code=bl10did>10dadycks the filesystem and mark4sfhref67b&10f=">10f=dycks the filesystem and markPeoplefchanghrefdi>bettes5inbde6 middlelp" he opera="li deserve/a>6710f9"" id="L189" class="line" nam="flose :-) class5ef="+code5error" class="sr10f2v-&10ef="6e the s_umount sema10ef=>10fpan61brchange_/blim_bdev" clchecb_di>brchangeef="fs/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=27ck_dev.c#L228*  href="+co10f4v-&10"lin6ntees that only the10"li>10fUSEn=" class="line" name="L164"r10f5v-&10        164" class="1010f9* id="L193" s/blo                 gendi>bd_fsfreeze_mutegendi>bpare_to_/blim="L26efcdi>bd_fsfreeze_mutedi>bpare" name="L186"> 156bde6)649a href=Li>bd_fsfreeze_mutebparee" nasass"L249" ="L26>     1016v-&10 cl6 up in freeze_bdev()10 cl>10f6ef="fs/bef="const s/blo                 &sprepare_to_opera="lis_/blim_bdev" class="s(&apre_opera="lispare_to_/blim="L26efck_opsdelock187bd_fsfreeze_mutedi>bpareystem6/span656a hreffopsdelock187 239  NUL"comy =1039">10f  64 2unsignedr class="line" name=evdevsdelock187 * actu105" >10f27*ckperblock5/span5510fcs="scla> 221        intevdevsdelock187b_clear_evdevsdelock187b_clear_evdevsef="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetd="line" name="LDISK_EVENT_MEDIA_CHANGEd_fsfreeze_muteDISK_EVENT_MEDIA_CHANGEpare=|perblock5/span55 240  ame="L186"> 156DISK_EVENT_EJECT_REQUESTd_fsfreeze_muteDISK_EVENT_EJECT_REQUESTre="2e" nasass"L249" ="L26>     1021v-&10ev-> */ ="line" name="LDISK_EVENT_MEDIA_CHANGEd_fsfreeze_muteDISK_EVENT_MEDIA_CHANGEparen27ck_dev.c#L228*  href="+co10>2v-&10/a>->>10>block_devef="fs/blockfs/blocsuperblock5/span55-&10"line" name="L222"> 622<10"li>10>USEn="srea hrde6)649a hrflush_di>bdelock187bef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=tdo_/blim="L26efc/blo_/blim_bdev" cl/blore="2e" nasass"L249" ="L26>     1025v-&10"+code="L223" class="lin10"+c>10>5)55b_/blim_bdev" clreval hatepai>bre="27ck_dev.c#L228*  href="+co10>6v-&10" cl6bd_fsfreeze_count10>L223="L2b_/blim_bdev" clreval hatepai>bre="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=Li>bd_fsfreeze_mutebparene" nasass"L249" ="L26>     1027v-&105210>  64 2fs/bloc1"line" sass"L223="L26>     10>8v-&10k(&aa>(-&10/a>6erence and only the 10/a>>10>an62105"n68thaw_bdevaXPORT_SYMBOLef="fo_/blim="L26efcchecb_di>brchange_/blim_bdev" clchecb_di>brchangeef="ne" nasass"L249" ="L26>     1031v-&10pan63-&10ather aent">  haw_bdec"f10ath>105block  haw_bde1028*>1053SEn=" class="line" name="L164"r1034v-&10decontamess= @ev" , may 10dec>105USEn="srea hrunsignedro_/blim="L26efcksize_/blim_bdev" clksize/ae=" name="L186"> 156k"L1rlogical_ name=size_/blim_bdev" clk"L1rlogical_ name=sizeef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=ne" nasass"L249" ="L26>     1035v-&10older: holder tryss= tol10old>105L223="L21056ef="fs/bef="fs/block_dev.c#19L205" c6e=bdev" class="sref">bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=ef">bde6)649a hri=size_/blim_bdev" clirsize/ae=" name="L186"> 156size_/blim_bdev" clsize/ae=e" nasass"L249" ="L26>     1037v-&10er @ev" ec"fsb=l/blim6d 10er >105  64 2whileaso_/blim="L26efcksize_/blim_bdev" clksize/ae="< o_/blim="L26efcPAGE_CACHE_SIZEd_fsfreeze_mutePAGE_CACHE_SIZEode=n4" class="line" name="L164"r1058v-&10/a>)63 */ ="line" name="Lksize_/blim_bdev" clksize/ae=nassa href="+code=bd_fsfree1059v-&10href="fs/block_dev.c#L2210hre>105" classcL"> 240  f="+cod breake" nasass"L249" ="L26>     104ev-&10.c#L229* sass"L2236>    10.c#>10.c223="L2>10.e* id="L193" lassa href="+code=bd_fsfree10.2v-&10href="fs/block_dev.c#L1810hre>10.class="s)649a hr19L205" c6e=bdev" class="sref">bde6)649a href= name=size_/blim_bdev" clk"_ name=sizeef="" name="L186"> 156ksize_/blim_bdev" clksize/ae="line" sass"L223="L26>     10.3v-&10fsb=l/blim6d, %falsd10fsb>10.L223="L2bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=ef">bde6)649a hri=blkbivsdelock187 156klksize_bivsdelock187-->10.4]ocklassa href="+code=bd_fsfree1045v-&10ruct 10.5n68thaw_bdevaXPORT_SYMBOLef="fo_/blim="L26efc hrsetrsize_/blim_bdev" clk"rsetrsizeef="n"line" sass"L223="L26>     10.6v-&10ruct 10.>)60 24510.  64<="L193" class="line" name=_=blk"L1rr" id="L200" clav._=blk"L1rr" ef="fs/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=tdo_/blim="L26efcfm6ef_sd_fsfreeze_mutefm6ef_spare_e=bd_fsfreeze_mm6ef_/blim_bdev" clmoefSEn=td class="line" name=for=0" ilsdelock187for=0" ief="n"line" sass"L223="L26>     10.8v-&10196" id="Lholder_bdev" c10196>10.27*ckperblock5/span55 239  NUL"comy =1039">1039"" id="L189" class="line" nam6"+code=sb" class="sref">1031v-&10dev.c#L22/* held by some10dev>1039"" id="L189" class="line" na 2176"+code=sb" class="sref">1032v-&1039"> 239  103pan61bbfreez10cla>103XT:cks the filesystem and mar="sockelassak_dev.f="fs/block_dev.1055v-&10amay_/blim href="+code=b10ama>103L223="L21036 64<="L193" class="line" name=_=blk"L1rgesd_fsfreeze_mute_=blk"L1rgesef="fs/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=tdo_/blim="L26efcfm6ef_sd_fsfreeze_mutefm6ef_spare_e=bd_fsfreeze_mm6ef_/blim_bdev" clmoefSEn=td class="line" name=for=0" ilsdelock187for=0" sblim27ck_dev.c#L228*  href="+co1037v-&1039"> 239  NUL"comy =1039">103rNUL"" class="line" name="L164"r1038v-&10 isba parti"foneof a hel10 is>103class="sbd_fsfreeze_mutegendi>bpare_to_/blim="L26efcdi>bd_fsfreeze_mutedi>bpare"line" sass"L223="L26>     1059v-&10ciated superblock6/span610cia>1039lass="s10a )5510a2)55>10a3)55        if ( */ ="line" name="LFMODE_READ_/blim_bdev" clFMODE_READblim27ck_dev.c#L228*  href="+co1065v-&1028* @ev" :fnt">  haw_bde1028*>10awholelass,3" class="le=bd_fsfreeze_m0ermd_fsfreeze_mute0ermef=""| name="L186"> 156MAY_READ_/blim_bdev" clMAY_READblim"line" sass"L223="L26>     1066v-&10decontamess= @ev" , may 10dec>10a6SEn="srea hr40        if ( */ ="line" name="LFMODE_WRITEd_fsfreeze_muteFMODE_WRITEblim27ck_dev.c#L228*  href="+co1067v-&10older: holder tryss= tol10old>10a" c=="srea hrlassa hre=bd_fsfreeze_m0ermd_fsfreeze_mute0ermef=""| name="L186"> 156MAY_WRITEd_fsfreeze_muteMAY_WRITEblim"line" sass"L223="L26>     1068v-&106610aadycks the filesystem and maaaaaaaaa* hooks: /n/,fseer"layebhre viola="lis"67for=0" sblim24" class="line" name="L164"r1072v-&10ipeof (&acblimss= name(&10ipe>10nblock_devef="fs/block_dev.c#L186" idresd_fsfreeze_mutelisblim==ok_dev.c#L195" idevcgroup=in6ef_0ermiss"lid_fsfreeze_mutedevcgroup=in6ef_0ermiss"lire="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=tdo_/blim="L26efc0ermd_fsfreeze_mute0ermef="n"line" sass"L223="L26>     1073v-&1067        if (-&10href="fs/block_dev.c#L2210hre>10nUSEn="srea href="+codfs/block_dev.c#L186" idbdr" id="L200" clav.bdr" ef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=ne" nasass"L249" ="L26>     1075v-&10release ="+c"L223, sleep10rel>10nwholelass,3" class="lllllllllfs/block_dev.c#L195" iresd_fsfreeze_mutelisblime" nasass"L249" ="L26>     10n6v-&10lock_dev.c#L188" it mult10loc>10nL223="L2-&10/a>)676a href="fs/block_10/a>>10n" c=="srea hrlassa href="+code=bd_fsfree1078v-&10href="fs/block_dev.c#L2210hre>10n27*ckperblock5/span5510n9pare_e=bd_fsfreeze_mrest" ilsdelock187rest" ipare:perblock5/span5510-&10struct 10)649a hrdi>bd_fsfreeze_mutedi>bpare" name="L186"> 156get_gendi>bd_fsfreeze_muteget_gendi>bre="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=9L205" c6e=bdev" cla_"+code=td"> */6/span61bd_fsfreeze_mutedi>bpare27ck_dev.c#L228*  href="+co10<4v-&10d="L200" cla.c#ryode=bde10d=">10 156o" id="L200" clav.ousblime" nasass"L249" ="L26>     1085v-&10/* if someone elsde/blim10/* >10<_mefolassa hrck5/span59bd_fsfreeze_mutedi>bpareystem6/span656a hreffopsdelock18710<>)60b105" >10<  64 2-&10a>->->10bdev->for=0" ief="n"line" sass"L223="L26>     1089v-&1010<9e" classa hrclassss="line" name=ev.c>bdev->-&10"+code="L223" class="lin10"+c>10"+223="L2bde6)649a href=Li>bd_fsfreeze_mutebpare==ok_dev.c#L195" idi>bd_fsfreeze_mutedi>bpare"line" sass"L223="L26>     1091v-&10>->-&>10"" classcL"> 240  de6)649a hrk9L205" c6e=bdev" class="sref">bde6)649a href=quelo_/blim_bdev" clef=quelopare==ok_dev.c#L195" idi>bd_fsfreeze_mutedi>bpareystem6/span656a hrefquelo_/blim_bdev" clquelopare"line" sass"L223="L26>     1092v-&10devlock_dev.f="fs/block_10dev>10"block_devef="fs/block_dev.c#L186" idk9L205" c6e=bdev" class="sref">bde6)649a href=contaiis_/blim_bdev" claf=contaiisef="" name="L186"> 156k9L205" c6e=bdev" class="sr"line" sass"L223="L26>     1093v-&10n addi"fonalb.cferess="<10n a>10"_aop=lassa href="+cod40-&10released1in clear_a>(10"USEn="srea href="+codfs/blocks/blo                 &abling="L1=infod_fsfreeze_mute&abling="L1=infopare_to_/blim="L26efck_i05" c6e=bdev" clai="sr"line" sass"L223="L26>     1095v-&10acces59"> via ref">i" cl10acc>10"L223="L2bde6)649a href=0" ilsdelock187b_get_0" ilsdelock187di>b_get_0" ire="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetdo_/blim="L26efc0" inod_fsfreeze_mute0" snoblimne" nasass"L249" ="L26>     1098v-&10k(&aa>(bdev->-&10 id="L200" cla="+code=bl10 id>10"" classcL"> 240  f="+cod         gotoname="L186"> 156o" _clearid="L200" clav.ous_clearblime" nasass"L249" ="L26>     11dev-&11dev<"L200" cla="+code=bl11dev>110/7*ckperblock5/span55 240  fs/block_dev.c#L186" idresd_fsfreeze_mutelisblim==osuperblock5/span55110block_devef="fs/blockf="+codrclask_dev.c#L195" idi>bd_fsfreeze_mutedi>bpareystem6/span656a hreffopsdelock187-&11d addi"fonalb.cferess="<11d a>110_aop=lassa href="+cod40  fs/block_dev.c#L186" idresd_fsfreeze_mutelisblim==ok_dev.c#L195" idi>bd_fsfreeze_mutedi>bpareystem6/span656a hreffopsdelock187-&11dcces59"> via ref">i" cl11dcc>110wholelass,3" class="lllllllll40  fs/block_ the filesystem and mba Lost a race with5&lockdi>bblockfbeingsociated with this5/span591a href11d6v-&11d8888888888888888* witho11d88>11d88" id="L189" class="line" nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn* deleted,ftrysagaii676711d27*cks the filesystem and mannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn*="sockelassak_dev.f="fs/block_dev.11d9v-&11did="L200" cla="+code=bl11did>110" classcL"> 240  f="+cod                 k_dev.c#L195" idi>b_put_0" ilsdelock187di>b_put_0" ire="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=0" ilsdelock187b&11f=">111-lass="s 240       k_dev.c#L195" i19L205" c6e=bdev" class="sref">bde6)649a href=0" ilsdelock187thaw_bdevNULLblime" nasass"L249" ="L26>     11f1v-&11 240  fs/block> 240       k_dev.c#L195" i19L205" c6e=bdev" class="sref">bde6)649a href=Li>bd_fsfreeze_mutebpare==ok_dev.c#L195" iNULL">thaw_bdevNULLblime" nasass"L249" ="L26>     11f2v-&11ef="6e the s_umount sema11ef=>111block_devef="fs/blockf="+codr> 240       k_dev.c#L195" i19L205" c6e=bdev" class="sref">bde6)649a href=quelo_/blim_bdev" clef=quelopare==ok_dev.c#L195" iNULL">thaw_bdevNULLblime" nasass"L249" ="L26>     11f3v-&11c#L22/* Call whas you fr11c#L>111_aop=lassa href="+cod40  fs/block>       k_dev.c#L195" imutex#ref="6cas the underlymutex#ref="6    60111USEn="srea href="+codfs/blockf="+codr>       k_dev.c#L195" idi>b_unock_deevdevsdelock187b_unock_deevdevsre="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)uperblock5/span55bd_fsfreeze_mute0ut_Li>bre="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)uperblock5/span55-&1139"> 239  NUL"comy =1139">111" c=="srea hrlassa href="+codddddddddddddddddgotoname="L186"> 156rest" ilsdelock187rest" ipareuperblock5/span55 * actu115" >111class="s111" classcL"> 240  f="+cod lassa href="+code=bd_fsfree112ev-&11>->-&>112/7*ckperblock5/span55112" classcL"> 240  fs/blockclassss="line" name=resd_fsfreeze_mutelisblim=0 */ sss="line" name=ev.c>bdev->2v-&11/a>->>11>block_devef="fs/blockkkkkkkkkkkkkkkkkne" name="L2 hhaw_setrsize_/blim_bdev" clk"rsetrsizeef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=tf="line" name="Lfoff_sd_fsfreeze_mutefoff_spare)               get_capacity_/blim_bdev" clget_capacityef="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)<<9)uperblock5/span55  fs/block_dev.c#L186" idk_i05" c6e=bdev" clai="sr" name="L186"> 156klk_get_&abling="L1=infod_fsfreeze_mute&lk_get_&abling="L1=infoef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=)uperblock5/span55 622<11"li>112USEn="srea href="+codfs/blockf="+codrclask_dev.c#L195" ik_i05" c6e=bdev" clai="sr" =ok_dev.c#L195" iNULL">thaw_bdevNULLblim27ck_dev.c#L228*  href="+co1125v-&11"+code="L223" class="lin11"+c>112wholelass,3" class="lllllllll40  fs/block__/blim="L26efck_i05" c6e=bdev" clai="sr" n011>L223="L2bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=tdo_/blim="L26efck_i05" c6e=bdev" clai="sr)uperblock5/span55112" c=="srea hrlassa href="+codlassa href="+code=bd_fsfree1128v-&11k(&aa>(-&11/a>6erence and only the 11/a>>112" classcL"> 240  f="+cod n the filesystem and mba"sockelassak_dev.f="fs/block_dev.113ev-&115" c6   * thaw_bdev drop115" >113adycks the filesystem and maaaaaaaaaaaaaaaaaaaaaaaaa* I01139"" id="L189" class="line" naaaaaaaaaaaaaaaaaaaaaaaa* claopen succeedebfor5faic6b5with5-ENOMEDIUM67  haw_bdec"f11ath>113pan6167  haw_bde1128*>11328*cks the filesystem and maaaaaaaaaaaaaaaaaaaaaaaaa* 0" iit"lis linsfremov6b5medium67113XT:cks the filesystem and maaaaaaaaaaaaaaaaaaaaaaaaa*="sockelassak_dev.f="fs/block_dev.1135v-&11older: holder tryss= tol11old>113wholelass,3" class="lllllllllclask_dev.c#L195" ik_L205" c6e=bdev" class="sref">bde6)649a href=inval hateb_/blim_bdev" clef=inval hateb    24" class="line" name="L164"r1156v-&11    63113" c=="srea hrlassa href="+codddddddddddddddddame="L186"> 156resche_0" iit"lislsdelock187resche_0" iit"lisre="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetdo_/blim="L26efck_dev.c#L220" id="Le"+code=)uperblock5/span55>115class="s115" classcL"> 240  f="+cod ddddddddddddddddame="L186"> 156inval hate_0" iit"lislsdelock187inval hate_0" iit"lisre="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetdo_/blim="L26efck_dev.c#L220" id="Le"+code=)uperblock5/span55    11.c#>11.c223="L2-&11/a>)64 240  fs/blockclasss="line" name=resd_fsfreeze_mutelisblim27ck_dev.c#L228*  href="+co11.2v-&11href="fs/block_dev.c#L1811hre>114block_devef="fs/blockkkkkkkkkkkkkkkkkgotoname="L186"> 156o" _clearid="L200" clav.ous_clearblime" nasass"L249" ="L26>     11.3v-&11fsb=l/blim6d, %falsd11fsb>114_aop=lassa href="+cod}delser" class="line" name="L164"r11.4v-&11>--64114wholelass,3" class="lllllllllo_/blim="L26efcwhole_/blim_bdev" clwholeblim" name="L186"> 156bd_fsfreeze_mutebef="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetd0)uperblock5/span55114L223="L2 245114" c=="srea hrlassa href="+codclassss="line" name=whole_/blim_bdev" clwholeblim27ck_dev.c#L228*  href="+co11.8v-&11196" id="Lholder_bdev" c11196>114class="s 156o" _clearid="L200" clav.ous_clearblime" nasass"L249" ="L26>     11.9v-&11ock_dev.c#L22/* alreadyb11ock>114" classcL"> 240  f="+cod nme="L186"> 156BUG_ONid="L200" clav.BUG_ONef="f="line" name="Lfor=0" ilsdelock187for=0" ief="n"line" sass"L223="L26>     115ev-&1139"> 239  NUL"comy =1139">115c223="L2 240  fs/blockclasss="line" name=resd_fsfreeze_mutelisblim27ck_dev.c#L228*  href="+co1132v-&1139"> 239  115block_devef="fs/blockkkkkkkkkkkkkkkkkgotoname="L186"> 156o" _clearid="L200" clav.ous_clearblime" nasass"L249" ="L26>     1153v-&11holeehaw_bdewhich isnķhol>115_aop=lassa href="+cod40  k_dev.c#L195" ik_L205" c6e=bdev" class="sref">bde6)649a href=contaiis_/blim_bdev" claf=contaiisef="" name="L186"> 156whole_/blim_bdev" clwholeblime" nasass"L249" ="L26>     1154v-&11clas6 class="sref">freez11cla>115USEn="srea href="+codfs/block_dev.c#L186" idbdL1=in6ef_switch_k_i05" c6e=bdev" claL1=in6ef_switch_k_ire="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=t" nasass"L249" ="L26>     1155v-&11amay_/blim href="+code=b11ama>115wholelass,3" class="lllllllll40  ame="L186"> 156whole_/blim_bdev" clwholeblimef">bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=ef">bde6)649a hri=hatalsdelock187i=hataSEn=.de6)649a hreabling="L1=infod_fsfreeze_mute&abling="L1=infopare)"line" sass"L223="L26>     1156v-&11haw_bd"115L223="L2bde6)649a href=0" ilsdelock187b_get_0" ilsdelock187di>b_get_0" ire="f="line" name="Ldi>bd_fsfreeze_mutedi>bparetdo_/blim="L26efc0" inod_fsfreeze_mute0" snoblimne" nasass"L249" ="L26>     1157v-&1139"> 239  NUL"comy =1139">115" c=="srea hrlassa href="+codclasssk_dev.c#L195" idi>bd_fsfreeze_mutedi>bpareystem6/span656a hrefflagsdelock187-&11 isba parti"foneof a hel11 is>115class="sbdev->bdev->-&11ciated superblock6/span611cia>115" classcL"> 240  f="+cod dddddddd_dev.c#L186" idresd_fsfreeze_mutelisblim==o-ck5/span59116-lass="s 240 156o" _clearid="L200" clav.ous_clearblime" nasass"L249" ="L26>     1161v-&11e a6ain after freeze_bde11e a>116" classcL"> 240  fs/blocklassa href="+code=bd_fsfree1162v-&116span class="comment11116block_devef="fs/blockkkkkkkkkne" name="L2 hhaw_setrsize_/blim_bdev" clk"rsetrsizeef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=tasss="line" name=foff_sd_fsfreeze_mutefoff_spare)               ev.c>bdev->>116_aop=lassa href="+cod}perblock5/span55-&1128* @ev" :fnt">  haw_bde1128*>11awholelass,3" class="lclask_dev.c#L195" ik_L205" c6e=bdev" class="sref">bde6)649a href=contaiis_/blim_bdev" claf=contaiisef=""  name="L186"> 156k9L205" c6e=bdev" class="sr24" class="line" name="L164"r1166v-&11decontamess= @ev" , may 11dec>116L223="L2bde6)649a href=Li>bd_fsfreeze_mutebpareystem6/span656a hreffopsdelock187116class="sbde6)649a href=Li>bd_fsfreeze_mutebpareystem6/span656a hreffopsdelock187116" classcL"> 240  f="+cod n the filesystem and mba-&11namewaitsblocanother /bl11nam>117-lass="sbde6)649a href=inval hateb_/blim_bdev" clef=inval hateb    24" class="line" name="L164"r1171v-&1139;t actually /blim.  On1139;>117" classcL"> 240  fs/block> 240resche_0" iit"lisre="f="line" name="Lk_L205" c6e=bdev" class="sref">bde6)649a href=Li>bd_fsfreeze_mutebparetdo_/blim="L26efck_dev.c#L220" id="Le"+code=)uperblock5/span5511n_aop=lassa href="+codddddddddddddddddelserclask_dev.c#L195" iresd_fsfreeze_mutelisblim===o-ck5/span5911nUSEn="srea href="+codfs/blockdddddddddddddddd_dev.c#L186" idinval hate_0" iit"lislsdelock187inval hate_0" iit"lisre="f="line" name="Lk_L205" c6e=bdev" class="sref">bde6)649a href=Li>bd_fsfreeze_mutebparetdo_/blim="L26efck_dev.c#L220" id="Le"+code=)uperblock5/span5511nwholelass,3" class="lllllllll}perblock5/span5511nL223="L2>117" c=="srea hrlassa href="+codddddddddgotoname="L186"> 156o" _ref="6_k_dev.c#L220" id="Lo" _ref="6_k_deblime" nasass"L249" ="L26>     1178v-&11href="fs/block_dev.c#L2211hre>117class="s-&11 ec"fsb=l/blim6d, -EBUSY11 ec>117" classcL"> 240  n the filesystem and mba118+223="L2bd_fsfreeze_mute0ut_Li>bre="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)uperblock5/span55118" classcL"> 240  de6)649a hrmoeulfrr" id="L200" clav.moeulfrr" re="f="line" name="Lowns/delock18711bde6)649a href=openersdelock18711for=0" sblim27ck_dev.c#L228*  href="+co1185v-&11/* if someone elsde/blim11/* >118wholelass,3" class="l               ev.c>bdev->1186ef="fs/bef="fs/block_dev.c#mutex#ref="6cas the underlymutex#ref="6    60b115" >11<  64 2-&11a>->->11118an6211"+223="ame="L186"> 156o" _clearid="L200" clav.ous_clearblim:perblock5/span55b_put_0" ilsdelock187di>b_put_0" ire="f="line" name="L19L205" c6e=bdev" class="sref">bde6)649a href=0" ilsdelock187119class="s)649a hr19L205" c6e=bdev" class="sref">bde6)649a href=Li>bd_fsfreeze_mutebpare==ok_dev.c#L195" iNULL">thaw_bdevNULLblime" nasass"L249" ="L26>     1193v-&11n addi"fonalb.cferess="<11n a>1193e" classa hr="line" name="Lk_L205" c6e=bdev" class="sref">bde6)649a href=0" ilsdelock187thaw_bdevNULLblime" nasass"L249" ="L26>     1194v-&11released1in clear_a>(11"USEn="srea hr="line" name="Lk_L205" c6e=bdev" class="sref">bde6)649a href=quelo_/blim_bdev" clef=quelopare==ok_dev.c#L195" iNULL">thaw_bdevNULLblime" nasass"L249" ="L26>     1195v-&11acces59"> via ref">i" cl11acc>119_mefolassa hrck5/span59bde6)649a href=in6ef_/blim_bdev" clef=in6efSEn=tn0bde6)649a href=contaiis_/blim_bdev" claf=contaiisef="27ck_dev.c#L228*  href="+co1197v-&11ev.c#L18 88888888888888811ev.>11"" c=="srea hrlassa hrde6)649a hr_=blk"L1rr" id="L200" clav._=blk"L1rr" ef="fk_dev.c#L195" ik_L205" c6e=bdev" class="sref">bde6)649a href=contaiis_/blim_bdev" claf=contaiisef="tdo_/blim="L26efcm6ef_/blim_bdev" clmoefSEn=, 1)"line" sass"L223="L26>     1198v-&11k(&aa>(bde6)649a href=contaiis_/blim_bdev" claf=contaiisef="" name="L186"> 156NULL">thaw_bdevNULLblime" nasass"L249" ="L26>     1199v-&11 id="L200" cla="+code=bl11 id>1199pare_e=bd_fsfreeze_mo" _ref="6_k_dev.c#L220" id="Lo" _ref="6_k_deblim:perblock5/span55bdev->b_unock_deevdevsdelock187b_unock_deevdevsre="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)uperblock5/span55120class="s)649a hr0ut_Li>bd_fsfreeze_mute0ut_Li>bre="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)uperblock5/span55-&12deleased1in clear_a>(120USEn="e=bd_fsfreeze_mo" v.c#L220" id="Lo" blim:perblock5/span55 via ref">i" cl12dcc>120_mefolassa hrck5/span59-&12dv.c#L18 88888888888888812dv.>120" c=="srea hrfs/block_dev.c#L195" iresd_fsfreeze_mutelisblime" nasass"L249" ="L26>     12d8v-&12d(&aa>(-&12did="L200" cla="+code=bl12did>120an62b&12f=">121adycks the filesystem and m/*a"sockelassak_dev.f="fs/block_dev.12f1v-&12121pan61-&12"lin6ntees that only the12"li>121XT:cks the filesystem and mar @holder: exclusive holder6"+code=sb" class="sref">12f6v-&12 cl6 up in freeze_bdev()12 cl>12188" id="L189" class="line" n* Open @e"+c5with5@moef.  I0<@moef includes5&lo7;FMODE_EXCL, @e"+c5is 2176"+code=sb" class="sref">12f7v-&1239"> 239  NUL"comy =1239">121_bd id="L189" class="line" n*aopen with5exclusive access.  Specifyhre &lo7;FMODE_EXCL with5&lo7;NULLbl176"+code=sb" class="sref">12f8v-&125" c6s="comment"> * actu125" >12127*cks the filesystem and mar @holderk4sfinval h.  Exclusive opens may nest for67121adycks the filesystem and maa 2176"+code=sb" class="sref">122ev-&12>->-&>1229"" id="L189" class="line" namOn success,6"+code=sb" class="sref">1221v-&12ev->676712>4v-&12"line" name="L222"> 622<12"li>122XT:cks the filesystem and mar Might sleep67122wholed="L189" class="line" na 2176"+code=sb" class="sref">12>6v-&12" cl6bd_fsfreeze_count12288" id="L189" class="line" n* RETURNSh 2176"+code=sb" class="sref">12>7v-&1252122_bd id="L189" class="line" n*a0 linsuccess,<-errno linfaicure6712227*cks the filesystem and mar="sockelassak_dev.f="fs/block_dev.1229v-&12/a>6erence and only the 12/a>>122" clacclass="line" name=blk"L1rgesd_fsfreeze_muteblk"L1rgesef="fs/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=tdo_/blim="L26efcfm6ef_sd_fsfreeze_mutefm6ef_spare_e=bd_fsfreeze_mm6ef_/blim_bdev" clmoefSEn=tdvoid_to_/blim="L26efcholder_/blim_bdev" clholderef="27ck_dev.c#L228*  href="+co123ev-&125" c6   * thaw_bdev drop125" >123adyck" class="line" name="L164"r1231v-&12pan63 156NULL">thaw_bdevNULLblime" nasass"L249" ="L26>     1252v-&12ather aent">  haw_bdec"f12ath>1232)55resblime" nasass"L249" ="L26>     1253v-&1228* @ev" :fnt">  haw_bde1228*>1233)55123USEn="srea hr="line" name="LWARN_ON_ONCElsdelock187WARN_ON_ONCEef="f/a>        if ( */ ="line" name="LFMODE_EXCL_/blim_bdev" clFMODE_EXCLef="2=0 */ sss="line" name=holder_/blim_bdev" clholderef="2e" nasass"L249" ="L26>     1255v-&12older: holder tryss= tol12old>123L223="L2123L223="L2        if ( */ ="line" name="LFMODE_EXCL_/blim_bdev" clFMODE_EXCLef="2=0 */ ss="line" name=holder_/blim_bdev" clholderef="24" class="line" name="L164"r1237v-&12er @ev" ec"fsb=l/blim6d 12er >123" c=="srea hrlassa hro_/blim="L26efcwhole_/blim_bdev" clwholeblim" name="L186"> 156k"rst" i=claimhred_fsfreeze_mute>125class="s-&12href="fs/block_dev.c#L2212hre>125" classcL"> 240  f="+cod ck5/span59    12.c#>12.c223="L2>124" classcL"> 240  }perblock5/span55124class="s-&12>--64124L223="L2124L223="L2-&12lin6" name="L245"> 245124" c=="srea hrlassa hrs/blo                 gendi>bd_fsfreeze_mutegendi>bre="_to_/blim="L26efcdi>bd_fsfreeze_mutedi>bpare" name="L186"> 156whole_/blim_bdev" clwholeblimef">bde6)649a href=Li>bd_fsfreeze_mutebpareuperblock5/span5512427*ckperblock5/span55 240  n the filesystem and mba-&1239"> 239  NUL"comy =1239">125c223="L2bdev-> 240  ne" name="L2 hhspin#f="6cas the underlyspin#f="6    60 239  125block" nasass"L249" ="L26>     1253v-&12holeehaw_bdewhich isnĸhol>125_aop=lassa href="+codclassss="line" name=reslsdelock187resblim24" class="line" name="L164"r1254v-&12clas6 class="sref">freez12cla>125USEn="srea href="+codfs/block_dev.c#L186" idBUG_ONid="L200" clav.BUG_ONef="fsss="line" name=ev_may=claimd_fsfreeze_mute125wholelass,3" class="llllllllln the filesystem and mba"sockelassak_dev.f="fs/block_dev.1256v-&12haw_bd"12588" id="L189" class="line" nnnnnnnnnnnnnnnnnnnnnnnnn* Note that for6"+code=sb" class="sref">1257v-&1239"> 239  NUL"comy =1239">125_bd id="L189" class="line" nnnnnnnnnnnnnnnnnnnnnnnnn* will bf increlineed twpre,5s/bl6"+code=sb" class="sref">1258v-&12 isba parti"foneof a hel12 is>12527*cks the filesystem and mannnnnnnnnnnnnnnnnnnnnnnn* will bf sets="f-&12ciated superblock6/span612cia>125adycks the filesystem and mannnnnnnnnnnnnnnnnnnnnnnn* sets="fholder 2176"+code=sb" class="sref">126ev-&12a parti"foneof an un-hel12a p>126adycks the filesystem and maaaaaaaaaaaaaaaaaaaaaaaaa*="sockelassak_dev.f="fs/block_dev.1261v-&12e a6ain after freeze_bde12e a>126" classcL"> 240  fs/blockame="L186"> 156whole_/blim_bdev" clwholeblimef">bde6)649a href=holdersd_fsfreeze_mute126block_devef="fs/blockkkkkkkkkne" name="L2 hhwhole_/blim_bdev" clwholeblimef">bde6)649a href=holderd_fsfreeze_mute 156k"rmay=claimd_fsfreeze_mute>126_aop=lassa href="+codkkkkkkkkne" name="L2 hhev.c>bdev->-&12m - prepare tol/blim aen12m ->126USEn="srea href="+codfs/block_dev.c#L186" idev.c>bdev-> 156holder_/blim_bdev" clholderef="uperblock5/span55  haw_bde1228*>12awholelass,3" class="l}perblock5/span55126>)60-&1266bde6)649a href=claimhred_fsfreeze_mute126" classcL"> 240  ne" name="L2 hhwhole_/blim_bdev" clwholeblimef">bde6)649a href=claimhred_fsfreeze_mute 156NULL">thaw_bdevNULLblime" nasass"L249" ="L26>     127ev-&12namewaitsblocanother /bl12nam>127-lass="sbde6)649a href=claimhred_fsfreeze_mute1273)5512nUSEn="srea href="+codn the filesystem and mba"sockelassak_dev.f="fs/block_dev.1275v-&12release ="+c"L223, sleep12rel>127wholed="L189" class="line" nnnnnnnnnnnnnnnnn* Bs/blfevdev pollhreafor12788" id="L189" class="line" nnnnnnnnnnnnnnnnn*>127_bd id="L189" class="line" nnnnnnnnnnnnnnnnn* all arefodleaseh.  Th4sfis good enough5s/bltrabling"sockelassak_dev.f="fs/block_dev.1278v-&12href="fs/block_dev.c#L2212hre>12727*cks the filesystem and mannnnnnnnnnnnnnnn* individualfwriteablefodeerenresiss="o fragilefgivde-&12 ec"fsb=l/blim6d, -EBUSY12 ec>127adycks the filesystem and mannnnnnnnnnnnnnnn*67128adycks the filesystem and maaaaaaaaaaaaaaaaa*="sockelassak_dev.f="fs/block_dev.1281v-&12struct  240  classss="line" name=reslsdelock187resblim=0 */ /a>        if ( */ ="line" name="LFMODE_WRITElsdelock187FMODE_WRITEef="2=0 */ sss="line" name=ev.c>bdev-> */assak_dev.f="fs/block_dev.1282v-&12ruct 128block_devef="fs/blockkkkksk_dev.c#L195" idi>bd_fsfreeze_mutedi>bpareystem6/span656a hrefflagsdelock187-&12ot 6ake the superblock l12ot >128_aop=lassa href="+codkkkkkkkkne" name="L2 hhev.c>bdev-> 156trlo_/blim_bdev" cltrloblime" nasass"L249" ="L26>     1284v-&12d="L200" cla.c#ryode=bde12d=">128USEn="srea href="+codfs/block_dev.c#L186" iddi>b_ock_deevdevsdelock187b_ock_deevdevsre="f="line" name="Ldi>bd_fsfreeze_mutedi>bpare)uperblock5/span55-&12eze_m5h 2175"+code=s12eze>128>)60b125" >128" c=="srea hrlassa hro_/blim="L26efcmutex#ref="6cas the underlymutex#ref="6    60128" classcL"> 2}perblock5/span55129/7*ckperblock5/span55resblime" nasass"L249" ="L26>     1292v-&12devlock_dev.f="fs/block_12dev>129class}perblock5/span55thaw_bdevEXPORT_SYMBOLef="fss="line" name=klk"L1rgesd_fsfreeze_muteblk"L1rgesef="2e" nasass"L249" ="L26>     1294v-&12released1in clear_a>(12"USEn=" nasass"L249" ="L26>     1295v-&12acces59"> via ref">i" cl12acc>129wholed="L189" class="line" /*a"sockelassak_dev.f="fs/block_dev.1296v-&1288888888888888888* witho12888>12988" id="L189" class="line" n* blk"L1rges_by_path5-aopen a fs/blfd&apre by8* wi"sockelassak_dev.f="fs/block_dev.1297v-&12ev.c#L18 88888888888888812ev.>129_bd id="L189" class="line" n*a@path: path5="fde6 fs/blfd&apre ="fopenblockelassak_dev.f="fs/block_dev.1298v-&12k(&aa>(-&12 id="L200" cla="+code=bl12 id>129adycks the filesystem and maa @holder: exclusive holder130pan6167-&13deleased1in clear_a>(130XT:cks the filesystem and mar On success,-&13dcces59"> via ref">i" cl13dcc>130wholed="L189" class="line" na 2176"+code=sb" class="sref">13d6v-&13d8888888888888888* witho13d88>13088" id="L189" class="line" n* CONTEXTh 2176"+code=sb" class="sref">13d7v-&13dv.c#L18 88888888888888813dv.>130_bd id="L189" class="line" n*aMight sleep6713027*cks the filesystem and mar/a>67131ev-&13f="+code=bdev" claef">b&13f=">131adycks the filesystem and maa Pointerk="f671319"" id="L189" class="line" na="sockelassak_dev.f="fs/block_dev.13f2v-&13ef="6e the s_umount sema13ef=>131pan61s/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efcklk"L1rges_by_pathd_fsfreeze_muteblk"L1rges_by_pathef="fconst char_to_/blim="L26efcpathd_fsfreeze_mutepathef="tdo_/blim="L26efcfm6ef_sd_fsfreeze_mutefm6ef_spare_e=bd_fsfreeze_mm6ef_/blim_bdev" clmoefSEn=tassak_dev.f="fs/block_dev.13f3v-&13c#L22/* Call whas you fr13c#L>131_aop=lassa href="+codddddddddddddddddddddddddvoid_to_/blim="L26efcholder_/blim_bdev" clholderef="27ck_dev.c#L228*  href="+co13f4v-&13"lin6ntees that only the13"li>131XT:ck" class="line" name="L164"r13f5v-&13        164" class="13131wholelass,3" s/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=e" nasass"L249" ="L26>     13f6v-&13 cl6 up in freeze_bdev()13 cl>131L223="L2 239  NUL"comy =1339">131_bd i" nasass"L249" ="L26>     13f8v-&135" c6s="comment"> * actu135" >131class="s 156lookup_b_L205" c6e=bdev" clookup_b_L2ef="fss="line" name=pathd_fsfreeze_mutepathef="2e" nasass"L249" ="L26>     13f9v-&13"+code="L223" class="lin13"+c>131" classcL"> 2clask_dev.c#L195" iIS_ERR_/blim_bdev" clIS_ERRef="fo_/blim="L26efck_dev.c#L220" id="Le"+code=n27ck_dev.c#L228*  href="+co132ev-&13>->-&>132-lass="s132" claperblock5/span55)649a hrerrv.c#L220" id="Lerrode=" name="L186"> 156klk"L1rgesd_fsfreeze_muteblk"L1rgesef="fk_dev.c#L195" ik_dev.c#L220" id="Le"+code=tdo_/blim="L26efcm6ef_/blim_bdev" clmoefSEn=tdk_dev.c#L195" iholder_/blim_bdev" clholderef="2e" nasass"L249" ="L26>     13>3v-&13L220" id="L164" class="l13L22>1323 classcL"> 2clask_dev.c#L195" ierrv.c#L220" id="Lerrode=27ck_dev.c#L228*  href="+co1324v-&13"line" name="L222"> 622<13"li>132USEn="srea href="+codfs/block_dev.c#L195" iERR_PTR">thaw_bdevERR_PTRef="fk_dev.c#L195" ierrv.c#L220" id="Lerrode=2e" nasass"L249" ="L26>     13>5v-&13"+code="L223" class="lin13"+c>132L223="L2132L223="L2        if ( */ ="line" name="LFMODE_WRITElsdelock187FMODE_WRITEef="2=0 */ ref="fs/block_dev.c#read_li7v-&1352132" c=="srea hrlassa hro_/blim="L26efcblk"L1rr" id="L200" clav.blk"L1rr" ef="fk_dev.c#L195" ik_L205" c6e=bdev" class="srtdo_/blim="L26efcm6ef_/blim_bdev" clmoefSEn=ne" nasass"L249" ="L26>     13>8v-&13k(&aa>(thaw_bdevERR_PTRef="f-ck5/span59thaw_bdevEACCESSEn=ne" nasass"L249" ="L26>     13>9v-&13/a>6erence and only the 13/a>>132" classcL"> 2}perblock5/span55133/7*ckperblock5/span55133>)55  haw_bdec"f13ath>133class}perblock5/span55  haw_bde1328*>1333e" ck_dev.c#L195" iEXPORT_SYMBOL">thaw_bdevEXPORT_SYMBOLef="fss="line" name=klk"L1rges_by_pathd_fsfreeze_muteblk"L1rges_by_pathef="ne" nasass"L249" ="L26>     1354v-&13decontamess= @ev" , may 13dec>133USEn=" nasass"L249" ="L26>     1355v-&13older: holder tryss= tol13old>133wholed="L189" class="line" /*a"sockelassak_dev.f="fs/block_dev.1356v-&13    63133_bd id="L189" class="line" n*a@d+c: d&apre numbs/ of fs/blfd&apre ="fopenblockelassak_dev.f="fs/block_dev.1358v-&13/a>)63-&13href="fs/block_dev.c#L2213hre>133adycks the filesystem and maa @holder: exclusive holder    13.c#>1349"" id="L189" class="line" napaockelassak_dev.f="fs/block_dev.1341v-&13/a>)64134pan6167-&13>--64-&13ruct 134wholed="L189" class="line" naayou arefbehhrd a truly8sucky interfacf5s/blall you arefgivde13488" id="L189" class="line" n* d&apre numbs/.  _Never_f="f 245134_bd id="L189" class="line" n*aever neeh is -areconsiderkyour API6713427*cks the filesystem and mar/a>6767 239  NUL"comy =1339">1359"" id="L189" class="line" napaockelassak_dev.f="fs/block_dev.1351v-&13dev.c#L22/* held by some13dev>1359"" id="L189" class="line" na CONTEXTh 2176"+code=sb" class="sref">1352v-&1339"> 239  135pan61-&13holeehaw_bdewhich isnĹhol>13528*cks the filesystem and mar/a>67freez13cla>135XT:cks the filesystem and mar RETURNSh 2176"+code=sb" class="sref">1355v-&13amay_/blim href="+code=b13ama>135wholed="L189" class="line" naaPointerk="f6713588" id="L189" class="line" na="sockelassak_dev.f="fs/block_dev.1357v-&1339"> 239  NUL"comy =1339">135_bd is/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efcklk"L1rges_by__dev.c#L220" id="Lelk"L1rges_by__dere="f="line" name="LdL1rilsdelock187dL1ripare_e=bd_fsfreeze_m_dev.c#L220" id="Lass="srtdo_/blim="L26efcfm6ef_sd_fsfreeze_mutefm6ef_spare_e=bd_fsfreeze_mm6ef_/blim_bdev" clmoefSEn=tdvoid_to_/blim="L26efcholder_/blim_bdev" clholderef="27ck_dev.c#L228*  href="+co1358v-&13 isba parti"foneof a hel13 is>13527*ck" class="line" name="L164"r1359v-&13ciated superblock6/span613cia>135" classcL"> 2s/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=e" nasass"L249" ="L26>     136ev-&13a parti"foneof an un-hel13a p>136-lass="s136class="s)649a hrk_L205" c6e=bdev" class="sr= name="L186"> 156bdgesd_fsfreeze_mutebdgesef="fk_dev.c#L195" i_dev.c#L220" id="Lass="srne" nasass"L249" ="L26>     1363v-&13/a>66 2classss="line" name=ev.c>bdev->thaw_bdevERR_PTRef="f-ck5/span59  haw_bde1328*>136L223="L21366ef="fs/bef="fs/block_dev.c#errv.c#L220" id="Lerrode=" name="L186"> 156klk"L1rgesd_fsfreeze_muteblk"L1rgesef="fk_dev.c#L195" ik_dev.c#L220" id="Le"+code=tdo_/blim="L26efcm6ef_/blim_bdev" clmoefSEn=tdk_dev.c#L195" iholder_/blim_bdev" clholderef="2e" nasass"L249" ="L26>     1367v-&13older: holder tryss= tol13old>13a" c=="srea hrclask_dev.c#L195" ierrv.c#L220" id="Lerrode=27ck_dev.c#L228*  href="+co1368v-&1366thaw_bdevERR_PTRef="fk_dev.c#L195" ierrv.c#L220" id="Lerrode=2e" nasass"L249" ="L26>     1369v-&13bfunc"fon failsbloc@ev" 13bfu>136an62thaw_bdevEXPORT_SYMBOLef="fss="line" name=klk"L1rges_by__dev.c#L220" id="Lelk"L1rges_by__dere="2e" nasass"L249" ="L26>     1373v-&1367-&13href="fs/block_dev.c#L2213hre>13nUSEn=staticrcclass="line" name=elk"L1ropenv.c#L220" id="Lelk"L1ropenbl="fs/blo                 in6ef_/blim_bdev" clin6efSEn=naa               in6ef_/blim_bdev" clin6efSEn=,2s/blo                 filed_fsfreeze_mutefilfSEn=naa               filpd_fsfreeze_mutefilpode=27ck_dev.c#L228*  href="+co1375v-&13release ="+c"L223, sleep13rel>137whole" class="line" name="L164"r1376v-&13lock_dev.c#L188" it mult13loc>13nL223="L2>137_bd i" nasass"L249" ="L26>     1378v-&13href="fs/block_dev.c#L2213hre>137class="s137adycks the filesystem and mannnnnnnnaaPreserve &ablwards tempatibility5s/blallow largekfilefaccess"sockelassak_dev.f="fs/block_dev.138ev-&131389"" id="L189" class="line" naaaaaaaa*abinary neehs-&13ruct 138pan61-&13ot 6ake the superblock l13ot >13828*cks the filesystem and maaaaaaaaa*="sockelassak_dev.f="fs/block_dev.1384v-&13d="L200" cla.c#ryode=bde13d=">138USEn="srea hr="line" name="Lfilpd_fsfreeze_mutefilpode=ystem6/span656a hreff_flagsdelock187 156O_LARGEFILElsdelock187O_LARGEFILEode=e" nasass"L249" ="L26>     1385v-&13/* if someone elsde/blim13/* >138L223="L2138L223="L2 */ ref="fs/block_dO_NDELAYlsdelock187O_NDELAYode=27ck_dev.c#L228*  href="+co1387v-&135" c5dev" class="sref">b135" >138" c=="srea hrlassa hro_/blim="L26efcfilpd_fsfreeze_mutefilpode=ystem6/span656a hreff_m6ef_/blim_bdev" clf_m6efblim=| name="L186"> 156FMODE_NDELAYlsdelock187FMODE_NDELAYode=e" nasass"L249" ="L26>     1388v-&13a>->->138class="s */ ref="fs/block_dO_EXCL_/blim_bdev" clO_EXCLef="2" nasass"L249" ="L26>     1389v-&13138" classcL"> 240  ne" name="L2 hhfilpd_fsfreeze_mutefilpode=ystem6/span656a hreff_m6ef_/blim_bdev" clf_m6efblim=| name="L186"> 156FMODE_EXCL_/blim_bdev" clFMODE_EXCLef="e" nasass"L249" ="L26>     139ev-&13"+code="L223" class="lin13"+c>1390lass="s */ ref="fs/block_dO_ACCMODE_/blim_bdev" clO_ACCMODEef="2=== 32" nasass"L249" ="L26>     1391v-&13>->-&>139" classcL"> 240  ne" name="L2 hhfilpd_fsfreeze_mutefilpode=ystem6/span656a hreff_m6ef_/blim_bdev" clf_m6efblim=| name="L186"> 156FMODE_WRITE_IOCTL_/blim_bdev" clFMODE_WRITE_IOCTLef="e" nasass"L249" ="L26>     1392v-&13devlock_dev.f="fs/block_13dev>139block" nasass"L249" ="L26>     1393v-&13n addi"fonalb.cferess="<13n a>1393e" classa hr="line" name="Lk_L205" c6e=bdev" class="sr= name="L186"> 156bd_acquiro_/blim_bdev" clad_acquiroef="fss="line" name=in6ef_/blim_bdev" clin6efSEn=2e" nasass"L249" ="L26>     1394v-&13released1in clear_a>(1394lass="s 156NULL">thaw_bdevNULLblim2" nasass"L249" ="L26>     1395v-&13acces59"> via ref">i" cl13acc>139wholelass,3" class="lfs/bloc-ck5/span59-&13ev.c#L18 88888888888888813ev.>13"" c=="srea hrne" name="L2 hhfilpd_fsfreeze_mutefilpode=ystem6/span656a hreff_mapphred_fsfreeze_mutef_mapphre="sr= name="L186"> 156bd.c>bdev->13927*ckperblock5/span55 2fs/block_dev.c#L195" iklk"L1rgesd_fsfreeze_muteblk"L1rgesef="fk_dev.c#L195" ik_dev.c#L220" id="Le"+code=tdo_/blim="L26efcfilpd_fsfreeze_mutefilpode=ystem6/span656a hreff_m6ef_/blim_bdev" clf_m6efblimtdo_/blim="L26efcfilpd_fsfreeze_mutefilpode=2e" nasass"L249" ="L26>     14dev-&14dev<"L200" cla="+code=bl14dev>1409"" i}perblock5/span551402SEn=staticrcclass="line" name=_=blk"L1rr" id="L200" clav._=blk"L1rr" bl="fs/blo                 &sprepare_to_/blim_bdev" class="s(&aprepare_to_/blim="L26efck_dev.c#L220" id="Le"+code=tdo_/blim="L26efcfm6ef_sd_fsfreeze_mutefm6ef_spare_e=bd_fsfreeze_mm6ef_/blim_bdev" clmoefSEn=tdcclass="line" name=for_parsd_fsfreeze_mutefor_parsblim2" nasass"L249" ="L26>     14d3v-&14d addi"fonalb.cferess="<14d a>14028*ck" class="line" name="L164"r14d4v-&14deleased1in clear_a>(1404lass="s via ref">i" cl14dcc>140_mefolassa hrs/blo                 gendi>bd_fsfreeze_mutegendi>bre="_to_/blim="L26efcdi>bd_fsfreeze_mutedi>bpare" name="L186"> 156bd.c>bdev->-&14d8888888888888888* witho14d88>140L223="L2 156NULL">thaw_bdevNULLblime" nasass"L249" ="L26>     14d7v-&14dv.c#L18 88888888888888814dv.>140_bd i" nasass"L249" ="L26>     14d8v-&14d(&aa>( 2clask_dev.c#L195" ifor_parsd_fsfreeze_mutefor_parsblim2" nasass"L249" ="L26>     141ev-&14f="+code=bdev" claef">b&14f=">141-lass="s141" claperblock5/span551412 classcL"> 2clas!--ck5/span59bdev->-&14c#L22/* Call whas you fr14c#L>141_aop=lassa href="+codne" name="L2 hhWARN_ON_ONCElsdelock187WARN_ON_ONCEef="fck5/span59bdev->141USEn="srea href="+codne" name="L2 hhsync_fs/bld&ad_fsfreeze_mutesync_fs/bld&aef="fck5/span59bdev->14f7v-&1439"> 239  NUL"comy =1439">141_bd id="L189" class="line" nnnnnnnnnnnnnnnnn* so must switch6"+code=sb" class="sref">14f8v-&145" c6s="comment"> * actu145" >14127*cks the filesystem and mannnnnnnnnnnnnnnn*="sockelassak_dev.f="fs/block_dev.14f9v-&14"+code="L223" class="lin14"+c>141" classcL"> 240  ne" name="L2 hhev.c#in6ef_switch_b_i>bdev->efault_bood en_i>bdevfodev->bdev->bdev4    13>3v-&13L220" id4"L16442s you fr14c#L>141_aop>141f_switch_b_ief=ksk_dev.c#L195" idi>bd_fsfreeze_mutedi>bpareysteopan656a hreff_flagopafsfreeze_mutedi>bpareysttem ands="line" name=resm andeeze_mutefor_parsblim2" nasass"L2228*  href4"+co1324v-&13"line" n4me="L422"> 622<13"li>132USEn>141" classcL"> 240lass="line" name=resd_fsfreef_switch_b_ief=ksk_dev.c#L195" idi>bd_fsfreeze_mutedi>bpareysteopan656a hreff_flagopafsfreeze_mutedi>bpareysttem ands="line" name=resm andeeze1f_switch_b_ief=ksk_dev.c#L195" idi>bd_fsfre=bdev" class="srtdo_/blim="L26efcm6ef_/blim_bdev" clmoefSEn=ne" nasass"L449" ="L26>4    13>5v-&13"+code="4223" 425ex_unlo13>-&=bl14dev>1409"" i}perblock5/sp9" ="L26> sfre13>6v-&13" cl6bd_4sfree4e_count132ef="2=0 */ sss="line" name=ev.c>bdev->7v-&1352132" c=>140L223="L2bd_fsfreeze_mutedi>bpareysteopan656a hreff_flagopafsfreeze_mutedi>bpareystowndev.c#L195" iholdownde_fsfbdev" clmoefSEn=ne" nasass"L44 class="sr    13>8v-&13k(&a4>(4    13>9v-&13/a>6eren4e and42ass="lin14"+c>141" classcL"> 240vsdelput_dev.c#L195" ifor_pavsdelput_dev.#in6ef_switch_b_ief="fck5/span59bdev->b&14f=">141-lass="s 156NULL">thaw_bdevNULLblime" nasass"L2pan55-&>139" classcL"> 240 name="L186"> 156bd.c>bdev-> 156NULL">thaw_bdevNULLblime" nasass"L2pan55-&13ather ae4t">  43_bdev" c12ruc>128bloc>1394lass="sbdev->128_aop=lassa href="+codkkkkkk_to_/blim="L26efcaprtimd_fsfreeze_muteaprtimpare""fck5/span59bdev->NULLblime" nasass"L2p28*  href4    1354v-&13decontam4ss= @43only the14"li>141USEn="srea href="+ck_131373)5513nUS59bdev<6e_bde13e a>136" c>->E!"fck5/span5913588" id="L189" class="line" nstem6/span656a hreff_m633dev>1309"" id="L189" class=?X7>bd_fsLev.c#L195") @ev" , mi/mar Userct ONLYrclayou really8do not have anyt77really8do not have anyt77re1ILElsdelock187O_LARGEFILEod"f67bpareystowndev.ave anyt77really8do not have anmoefSEn=neassak_dev.f="fs/block_dev41358v43a>-&14d(&"4223" 425ex_unlo13>-&=bl14dema>bpaocke4assak_dev.f="fs/block_dev41339v43a>-&13/a>6ereaa>(bdev->-&13/a>6ereaa>(128blassa href="+codkkkkkk_to_/blimw_holdersdcontaine" c6_mutefoks/bpaocke4assak_dev.f="fs/block_dev41342v44a>-&12ipeof (&acblimss= name(&12ipe>4dev>1402SEn=staticrcclass="line" name=_=blkev" c12ruc>128blassa href="+codkkkkkk_to_/blimev.c#L195" ik_dev.c#L220" id="Le"+code=tdo_/bl1/span59bdev->"_parsblim2 href="fs/block_dev.c#L22413.3v44a>-&1328* @eva hode=mutex_unlo12>-&>11" classcL"> 240lasspan59bdev->">NULLblime href="fs/block_dev.c#L22413.4v4/a>-&1"4223" 425ex_unlo13>-&=bl14dewhenblocke4assak_dev.f="fs/block_dev413.5v44blk"L1rr"E!"fck5/span59-&14d(&aa>(bdev->-&13bfunc"fon failsbloc@ev" 134one67<4 href="fs/block_dev.c#L224135ev45a>-&13"+code="L2226efcfm6ef_sd_fsfreeze_mutefm6ef_spare_e=b       if ( 156aw_openersd_fsfreeze_mute-&>1oolt;-&13devlock_dev.f="fs/block_134eep67<4 href="fs/block_dev.c#L2241353v45a>-&14c#L22/* Call wha/block_dev.c#L2213hre>137class="s67<4 href="fs/block_dev.c#L2241354v4/a>-&13clas6 class="sref">freeeeeeeeeeeeeeeee* Rclass="a6 climls="" na Open ne" nhe filesyfieldnblockt ask for6"+code=sb" class="sref"41355v4/a>-&13amay_/blim href="+codeeeeeeeeeeeeeeeee* rd aprotected with ref="fs/bne"ine" namnnnnnnblockt ask for 239  NUL"comy =1439">141_bd id the filesystem and mannnnnnnnnnnnnnholderef="47ck_dev.c#L228*  href="+c41358v45a>-&12a>->->" nam/>14"s14mutex#ref="6cas the underlymupin#ref="6    6013527*ck4 class="line" name="L164"41359v45a>-&13bfunc"fon failsbloc@ev" 134"Le"+code=4" nasass"L249" ="L26>    4136ev46a>-&135" c6   4 thaw43laef">b&14f=">141_aop=lassa href="+codne" name="L2 hhWARN__umount sema14ef=>1412 classcL"> 2clas!--ck5/span59bdev->-&>141_aop=lassa href="+codne" name="L2 hhWARN__umount sema14ef=>1412 classcL"> 2clas!--ck5/span59bdev-&13href="fs/bl/span59bdev->-&13devlock_dev.f="fs/block_134"Lass="srn4" nasass"L249" ="L26>    41363v46a>-&14c#L22/* Call wha/block_dev.c#L2213hre>1 -&13href="fs="linep3ama mbaself, checkd maaasepar */ sss="line" name=ev.c>bdev->-&>_WRITEef="2=0 */ sss="line" name=ev.c>bdev->->136L2234"L2132ef="2=0 */ sss="line" name=ev.c>bdev-&13href="fs/bl/span59bdev->67 */ sss="line" name=ev.c>bdev-&13href="fs/bl/span59bdev->->-&13k(&a4>(" nam=="srea hrlassa hro_/" nam=="sremutex#ref="6cas the underlymupin#ref="6    60136an624a href="fs/block_dev.c#L14137ev47a>-&135" c6   * thaw_bdev drop134"Le"+code=4" nasass"L249" ="L26>    41371v47a>-&13pan63137" cla4perblock5/span55>>>>>>>>*ver_binaryas"" naa ht6 clim, remothe filesy6inmdescribeh by8d&apre numbs/ @d+c.  @moe4y__dere="24" nasass"L249" ="L26>    41373v47a>-&13ot 6ake the superblock l13ot >>>>>>>>>*vuns/ @d evpoll>_4sitryas"a "L2 he filesv.caaaaaaaaa*adurhreahrfunstablefbr4/a>1373)554a href="fs/block_dev.c#L141374v47a>-&13clas6 class="sref">freeeeeeeeeeeeeeeee* the filesystem and mannnnnnnnnnnnnntefilpode=47ck_dev.c#L228*  href="+c41375v47a>-&14        1643_bdev" c12ruc>128bloc>vfregt; */ sss="line" name=ev.c>bdev->n4e and42ass="lin14"+c>ut_deuns/ @d="+codfs/block_dev.c#L186" uns/ @d="+codf" ifor_pavsdelput_dev.#in6ef_switch_b_ief="fck5/span59bdev->67 */ sss="line" name=ev.c>bdev->->>137_bd 4" nasass"L249" ="L26>    41378v47a>-&12a>->-&=bl14de mba"socke4assak_dev.f="fs/block_dev41379v47a>-&13/a>6erence and only the 13/a>>132" 4cess"socke4assak_dev.f="fs/block_dev4138ev48a>-&135" c6   * thaw_bdev drop134mkfs"socke4assak_dev.f="fs/block_dev41381v48a>-&13pan63137class="s13Triggesy"+cod checkn61driv="L mbaflush MEDIA_CHANGE37class="s-&13ot 6ake the superblock l13ot >1y"+codne" nnarnnnnn ensurna Otection/blomedia remotalstemma decribeh by8d&apre numbs/ @d+c.  @moe4aa*="socke4assak_dev.f="fs/block_dev41384v48a>-&13clas6 class="sref">freeeeeeeee* from the la d - e.g. eject(1ark@holderkaref/aandicalf="f138L2234"L2ut_deflush="+codfs/block_dev.c#L186" flush="+codf" ifor_pavsdelput_dev.#in6ef_switch_b_ief="fck5/span59bdev->bdev->128beeze_muteblk"L1rgesef="fk_dev.c#L195" ik_dev.c#L220" id="Le"+code=tdo_/bllaimhred_fsfreeze_mutethaw_bdevE="srea hrlassa hro_/blim="L26efcaimhred_fsfreeze_mute13cloe_mutedi>bpareyst3hre>13cloe_6efcb"L1rr" id="L200" clav.Lelk"L1ropenbl="fs/blo                 in6ef_/blim_bdev" clin6efSEn=naa               in6ef_/blim_bdev" clin6efSEn=,2s/blo                 filed_fsfreeze_mutefilfSEn=naa               filpd_fsfreeze_m4a>NULLblim4" nasass"L249" ="L26>    41395v49a>-&13release ="+c"L223, sleep13r4ENOMEM="sr4" nasass"L249" ="L26>    41396v49a>-&13lock_dev.c#L188" it mult13loc>13nL223="L2thaw_bd8813ev.>13"" c=="srea hrne" name="L2 hhfilpd_fsfreeze_mutefilpode=ystem6/span656a hr name="L2 hhfilpd_fshossrea hrlassa hrohoss6efcaimhred_fsfreeze_mute1409"" i5perblock5/span5513nL2ioctlt;140" cl5perblock5/span5513nL223="L2thaw_bd881 clin6efSEn=,2s/blo      name="L2 hhfilpd_fsfreeze_mutefilpode=ystem6/span656a hr name="L2 hhfilpd_fshossrea hrlassa hrohoss6efcaimhred_fsfreeze_mute14028*ck5 class="line" name="L164"514d4v5/a>-&14delease="L2 hhfilpd_fsfc#L220" id="Le"+code=tdo_/blim="L26efcfm6ef_sd_fsfreeze_mutefm6ef_spare_e=bock_dev.c#L2213href81 clin6efSEn=,2s/blo      name="L2 hhfilpd_fsfreeze_mutefilpode=ystem6/span6imhred_fsfreeze_muteE!"fck5/span59bpare5perblock5/span55NULLblim5" nasass"L249" ="L26>    514d7v50a>-&1439"> 239  NUL"comy =1439">*  ref="fs"lc tbe alterlesusn61 * actu145" >*nnn updat34_bd before/13liy ioctlrk@holderkaref/aandicalf="f1 the filesystem and mannnnnnnnnnnnn5r_parsblim5" nasass"L249" ="L26>    5141ev51a>-&13"+code="L2226efcfm6ef_sd_ff81 clin6efSEn=,2s/blo      name="L2 hhfilpd_fsfreeze_mutefilpode=ystem6/span656a hreff_flagsdelock187 */ ref="fs/block_dO_NDELAYlsdelock187O5ouniaw_bd-5" nasass"L249" ="L26>    514f1v51a>-&13pan63 156FMODE_NDELAYlsdelock187FMODE5/a>141" cl5perblock5/span55FMODE5/_parsblim5 class="line" name="L164"514f3v5/a>-&14c#L22/* Call whas you fr14c#L>sfreeze_mutefm6ef_spare_e=b      = ~hreff_m6ef_/blim_bdev" clf_m6efblim=| name="L186"> 156FMODE_NDELAYlsdelock187FMODE5/>14028*ck5" nasass"L249" ="L26>    514f4v51a>-&13decontamess= @ev" , may 135128beeze_muteblk"L1rgesef="fk_dev.c#L195" ik_dev.c#L220" id="Le"+code=tdo_/blid="L200" clav.cm="sFMODE5/edi>bpare5" nasass"L249" ="L26>    514f6v5/a>-&1339;t actually /blim.  On1335ear, 2176"+code=sb" class="sref"514f7v51a>-&14dv.c#L18 888888888888888145irst 2176"+code=sb" class="sref"514f8v5/a>-&145" c6s="comment"> * a>137class="s-&13ock_dev.c#L22/* alreadybWL2 hedatannn >1349"" ia Open ne"Onls="lin decaaaa*>1349"" ia Open _bdself37class="s 239  NUL"comy driv=" which bashrf=ls="s"a fak349"" ia Open n37class="s141" cl5perblock5/span55 239  134"L2 hea d tkuarnnnm anaaa*gme=" numbs/.  37class="s4   513>3v52a>-&13holeehaw_bdewhich isn&# then37class="s14028*ck5" nasass"L2228*  href4"+c51324v52a>-&13clas6 class="sref">free the filesystem and mannnnnnnnnnnnn5lmoefSEn=n5" nasass"L449" ="L26>4   513>5v5/a>-&12ass="lin14"+c>"siz220" id="Le"+code="siz220im="L26efcfm6ef_sd_fi12" c=aio="L2 ht;bpare5perblock5/sp9" ="L26> sfr513>6v52an656a hreff_m633dev>n4e and4hrf=igileslo61<8" it mult13locnr_see_mutefilpode=ystnr_see_    ,h8" it mult13locloff20" id="Le"+code=loff20im="L26efcfm6ef_sd_f/. " id="Le"+code=/. /block_dO_NDELAYlsdelock187O5nersef="2=5 class="line" name="L464"513>7v52a>-&1_openersd_fsfreeze_muteFMODE513927*c5perblock5/449" ="L26>4   513>9v52a>-&13ciated superblock6/span613cia>1k_pluutefilpode=ystem>1k_pluuim="L26efcfm6ef_sd_f/luutefilpode=ystempluuim="E_NDELAYlsdelock187FMODE5lmoefSEn=n5" nasass"L4pan5511" classcL"> 240lasspan59bdev->5a>NULLblim5" nasass"L2pan55NULLblim5" nasass"L2pan55-&13ather a26efcfm6ef_sd_fBUG_ON" classcL"> 240BUG_ON_=blkev" c12ruc>128biocbt;-&13ne" name="Lk_L205"/. " id="Le"+code=/. /blocspan59bdev->5a_parsblim5" nasass"L2pan55NULLblim5" nasass"L2p28*  href4   51354v53a>-&14delease="L2 hhfilpd_fs>1k_st="L2pluutefilpode=ystem>1k_st="L2pluumutex#ref="6cas the under/luutefilpode=ystempluuim="cspan59bdev->5amoefSEn=n53hre>133adycksrr" id="L205" cla535>-&14delease="L2 hhfilpd_fs141" classcL"> 240lass="line" name=resd__gme="ic_.c#e=aio="L2 ht;128biocbt;-&1cspan59bdev->5aedi>bpare5 id="L189" class="line" n5tem6/5pan656a hreff_"L2226efcfm6ef_sd_f141" classcL"> 240lassname 0 ||e="L2 hhfilpd_fs141" classcL"> 240lass== cl13acc>139wholelIOCBQUEUEDpe>13nblockk_devIOCBQUEUED>-&1cw_openersd_fsfreeze_muteO_LARGEFIL5od"f<5k"L1rges()67136-lass="s-&13k(&a4>(-&13/a>6eren4e and42ass="lin14"+c>y 13dec>1366ef="fs/bef="fs/block_dev.c#errvgme="ic_"L2 hhname3dec>1366ef="fsgme="ic_"L2 hhnamePORT_SYMBOL">thaw_bd881 clin6efSEn=,2s/blo     ,<8" it mult13loc/. " id="Le"+code=/. /blo,<8" it mult13loc141" classcL"> 240lascspan59bdev->5fis/paocke5assak_dev.f="fs/block_dev5134ev54a>-&135" c6   4 thaw4holder tryss= tol13old>13a" c=="srea hrclask <cl E_WRITElsdelock187FMOD141" classcL"> 240lassname 0ck_dO_NDELAYlsdelock187O5" napaocke5assak_dev.f="fs/block_dev51341v54a>-&13pan63 240lass="line" name=resda p>136-lass="s1k_finish2pluutefilpode=ystem>1k_finish2pluumutex#ref="6cas the under/luutefilpode=ystempluuim="cspan59bdev->5">NULLblim5 href="fs/block_dev.c#L22513.4v54a>-&14deleasea hode=mutex_unlo12>-&>11" classcL"> 240lasspan59bdev->5whenblocke5assak_dev.f="fs/block_dev513.5v54blk"L339;t actually /blim.  On1335"edi>bpare5assak_dev.f="fs/block_dev513.6v5/a>-&1l13acc>139wholel.c#L195" iEX_GPipe>13nblockk_dev.c#L195" iEX_GPi_=blkev" c12ruc>128be12" c=aio="L2 ht;bdev->5"yt77re1IL5assak_dev.f="fs/block_dev513.7v54a>-&14dv.c#L18 888888888888888145API67<5 href="fs/block_dev.c#L22513.8v54a>-&13href="2ass="lin14"+c>"siz220" id="Le"+code="siz220im="L26efcfm6ef_sd_fi12" c=aio=rea="sbpaocke5 href="fs/block_dev.c#L22513.9v54a>-&13/a>6eren4e and4444444444rf=igileslo61<8" it mult13locnr_see_mutefilpode=ystnr_see_    ,h8" it mult13locloff20" id="Le"+code=loff20im="L26efcfm6ef_sd_f/. " id="Le"+code=/. /block_dO_NDELAYlsdelock187O5one67<5 href="fs/block_dev.c#L225135ev55a>-&1_openersd_fsfreeze_muteFMODE5EXTh 2176"+code=sb" class="sref"51352v552>-&13pan63128bee/a>->-&1328* @ev="L2 hhfilpd_fsloff20" id="Le"+code=loff20im="L26efcfm6ef_sd_fsiz2" id="Le"+code="iz2    ock_dev.c#L2213hrei_siz22rea="s128bee/a>->-&13decontamess= @ev" , may 135RNSh 2176"+code=sb" class="sref"51355v555>-&14deleaseholder tryss= tol13/. " id="Le"+code=/. /blosnameck_dev.c#L2213hresiz2" id="Le"+code="iz2    ck_dO_NDELAYlsdelock187O5oedi>bpare5 href="fs/block_dev.c#L2251356v55an656a hreff_m633dev>a hode=line" name=resd_fsfreeze_mute5 na="socke5assak_dev.f="fs/block_dev51357v55a>-&14dv.c#L18 888888888888888145holderef="57ck_dev.c#L228*  href="+c51358v55a>-&14d(&aa>(bpaocke5 class="line" name="L164"51359v55a>-&14did="L200" cla="+code=bl14siz2" id="Le"+code="iz2    o<ccla="+code=bl14INT_MAX" id="Le"+code=INT_MAX    ck_dO_NDELAYlsdelock187O5"Le"+code=5" nasass"L249" ="L26>    5136ev56a>-&135" c6   4 thaw43laef">b&14f=">nr_see_mutefilpode=ystnr_see_    ock_dev.c#L2213hreiov_shorten_muteblk"L1rgesioe_shorten_=blkb"L1rr" id="L200" clav.Lovect;128biocbt;bdev->5=XTh 217-&1339;t actually /blim.  On1335"Lass="srn5" nasass"L249" ="L26>    51363v56a>-&1367-&13clas6 class="sref">fr>137class="s 239  NUL"comye the filesystem and mannnnnnnnnnnnn58olderef="57ck_dev.c#L228*  href="+c51368v56a>-&13href="fs/block_dev.c#L2213hre>13rclass=pag="s128bpag="sO5"a>bpaocke5" nasass"L249" ="L26>    51369v56a>-&1_openersd_fsfreeze_mute136an625a href="fs/block_dev.c#L15137ev57a>-&135" c6  "L1rr" id="L200" clav.super_b"srea hrlassa hro_/"uper_b"sre6efc  ev" c12ruc>128b"upera hrlassa hro_/"uper    ock_dev.c#L2213hreBDEV_I" classcL"> 240BDEV_I_=blkev" c12ruc>128bpag="s128bee/"upera hrlassa hro_/ee/"uper/bloine" name=resd_fsfreeze_mute5"Le"+code=5" nasass"L249" ="L26>    51371v57a>-&14FMOD"upera hrlassa hro_/"uper    ="fs/block_dev.c>bdes_oL220" id="Le"+cos_oL    ="fs/block_dev.c>bdeinhevtry_tovfreg_pag="sO5y__dere="25" nasass"L249" ="L26>    51373v57a>-&14c#L22/* Call wha hode=mutex_unlo12>-&"upera hrlassa hro_/"uper    ="fs/block_dev.c>bdes_oL220" id="Le"+cos_oL    ="fs/block_dev.c>bdeinhevtry_tovfreg_pag="s128bpag="sbpare5 class="line" name="L164"51376v57a>-&1339;t actually /blim.  On1335fna="socke5" nasass"L249" ="L26>    51377v57a>-&14dv.c#L18 888888888888888145a>>137_bd 5" nasass"L249" ="L26>    51378v57a>-&13href="L189tev.c#L188" it mult13locaddress_e fce namration;bparedefline_aree    ock_openersd_fsfreeze_mutebpaocke5assak_dev.f="fs/block_dev51379v57a>-&13/a>6ere.ev" c12ruc>128brea=pag="s-&13/a>6er"L26efcaprtimd_fsf12" c=rca=pag="s128b"L2 hpag="s-&13/a>6e"L26efcaprtimd_fsf12" c="L2 hpag="s-&13pan63128b"L2 h_begin_muteblk"L1rges"L2 h_begin>-&13pan"L26efcaprtimd_fsf12" c="L2 h_begin_muteblk"L1rgesf12" c="L2 h_begin&spr,esystem and mannnnnnnnnnnnn5c>137" cla5assak_dev.f="fs/block_dev51382v582>-&13pan63128b"L2 h_en="s-&13/a>6e"L26efcaprtimd_fsf12" c="L2 h_en="s128b"L2 hpag=eze_mutedi>bpare"L2 hpag=e>-&13/a>6/block_dev.c#errvgme="ic_"L2 hpag=eze_mutedi>bparegme="ic_"L2 hpag=e&spr,esystem and mannnnnnnnnnnnn5c128brelass=pag="s6er"L26efcaprtimd_fsf12" c=rclass=pag="s128bdirect_IOze_mutedi>bparedirect_IO>-&13/a>6e"L26efcaprtimd_fsf12" c=direct_IOze_mutedi>bparef12" c=direct_IO6efc,esystem and mannnnnnnnnnnnn5cedi>bpare5"L2bparedefline_free    ock_openersd_fsfreeze_mute128bnameze_mutedi>bparename>-&14c#L22/* Ca"L26efcaprtimd_fsf12" c=nameze_mutedi>bparef12" c=name6efc,esystem and mannnnnnnnnnnnn5E_EXCLef="5" nasass"L249" ="L26>    5139ev590>-&13/a>6ere.ev" c12ruc>128bfreeze_mutedi>bpareysttem ands="lL22/* Ca"L26efcaprtimd_fsf12" c=cloe_mutedi>bpareyst3hre>13cloe_6efc,esystem and mannnnnnnnnnnnn5ELe"+code=5" nasass"L249" ="L26>    51391v59a>-&13pan63128bllseeea hrlassa hro_/llseee>-&14c#L22/* "L26efcaprtimd_fsf1nnnnllseeea hrlassa hro_/f1nnnnllseee6efc,esystem and mannnnnnnnnnnnn5E>137" cla5" nasass"L249" ="L26>    51392v592>-&13pan63128brea="s128b"L2 hze_mutedi>bpare"L2 h_=bl4c#L22/* C"L26efcaprtimd_fsdohname="L2 hze_mutedi>bparedohname="L2 h6efc,esystem and mannnnnnnnnnnnn5E128baio=rea="s128baio="L2 ht;bpare5" nasass"L249" ="L26>    51396v59a>-&13lock_de.ev" c12ruc>128bmmaL220" id="Le"+commaL_=bl4c#L22/* Ca"L26efcaprtimd_fsgme="ic_.c#e=mmaL220" id="Le"+cogme="ic_.c#e=mmaL6efc,esystem and mannnnnnnnnnnnn5EDELAYode=5a href="fs/block_dev.c#L151397v597>-&13lock_de.ev" c12ruc>128bfname3dec>1366ef="fsfnamePORTc#L22/* Ca"L26efcaprtimd_fsf12" c=fname3dec>1366ef="fsf12" c=fname6efc,esystem and mannnnnnnnnnnnn5EDELAYode=5" nasass"L249" ="L26>    51398v598>-&13namewai.ev" c12ruc>128bL26efced=ioctlt;-&1#ifdefk_dev.c#L2213hreCONFIG_COMPATt;128bcompat2ioctlt;1409"" i6perblock5/span55128bsplic22rea="s6er"L26efcaprtimd_fsgme="ic_.c#e=splic22rea="s128bsplic22"L2 ht;-&13/ack_dev.c#L2213hregme="ic_.c#e=splic22"L2 ht;E!"fck5/span59bpare6perblock5/span5513nL223="L2NULLblim6" nasass"L249" ="L26>    614d7v60a>-&1_openersd_fsfreeze_mutebparenld=fn    ock_dev.c#L2213hreget=fnze_mutedi>bpareget=fn6efcbcine" name=resd_fsfreeze_mute6r_parsblim6" nasass"L249" ="L26>    6141ev610>-&13/a>6ereaa>(bpareset=fn6efcbaa>(128beeze_muteblk"L1rgesef="fk_dev0blid="L200" clav.cm="sFMODE6/a>141" cl6perblock5/span55bpareset=fn6efcbaa>(-&14c#L22/*a hode=mutex_unlo12>-&>1eze_mutedi>bparere /bloine" name=resd_fsfreeze_mute6/>14028*ck6" nasass"L249" ="L26>    614f4v61a>-&1"4223" 425ex_unlo13>-&=bl14d6E!"fck5/span59bpare6" nasass"L249" ="L26>    614f6v61a>-&1l13acc>139wholel.c#L195" iEXze_mutedi>bparev.c#L195" iEXPORT_SYMBOL">thaw_bdioctl_by_vFMODE6/>NULLblim6>6"+code=sb" class="sref"614f7v61a>-&14dv.c#L18 888888888888888146irst 2176"+code=sb" class="sref"614f8v6/a>-&145" c6s="comment"> * a>1137class="s-&13ock_dev.c#L22/* alreadyblookup_v-&1339"> 239  NUL"comy <@pathlock:2/*special .c#e*a presL"cn61<>1349"" ia Open 37class="s141" cl6perblock5/span55 239  1349"" i       at<@pathlockd ma>134current37class="s4   613>3v62a>-&13holeehaw_bdewhich isn&# L26>e fcet;4apossiblhea d a hode=idne"R hode=ERR_PTR(error)37class="s14028*ck6" nasass"L2228*  href4"+c61324v62a>-&13clas6 class="sref">free o>13rwihen37class="sbpare6perblock5/sp9" ="L26> sfr613>6v62an656"L1rr" id="L200" clav.>13nL223="L2128bpathlock"s7v62a>-&1_openersd_fsfreeze_mute13nL223="L24   613>9v62a>-&13ciated superblock6/span613ciaLelk"L1ropenbl="fs/blo         ev" c12ruc>128bLelk"L1ropenbl="fs/blo       E_NDELAYlsdelock187FMODE6lmoefSEn=n6" nasass"L4pan55-&13devlock_dev.f="fs/block_136a_parsblim6" nasass"L2pan55128bpathlock"sNULLblim6" nasass"L2p28*  href4   61354v63a>-&14delease4c#L22/*a hode=mutex_unlo12>-&ERR_PTRze_mutedi>bparevRR_PTRPORT_cl13acc>139wholelINVAXze_mutedi>bparevINVAX6efc E_NDELAYlsdelock187FMODE6amoefSEn=n63hre>133adycksrr" id="L206" cla63blk"L1rr"E!"fck5/span59bpare6 id="L189" class="line" n6tem6/6pan656a hreff_lock_dev.c#L221error"sthaw_bdpathlock"sO_LARGEFIL6od"f<6k"L1rges()holder tryss= tol13oldor"s-&12a>->-&ERR_PTRze_mutedi>bparevRR_PTRPORT_er tryss= tol13oldor"s-&13bfunc"fon failsbloc@ev" 136fis/paocke6assak_dev.f="fs/block_dev6134ev640>-&13/a>6ereaa>(128bd"+cryze_mutedi>bparede+cryim="="fs/block_dev.c>bdee/a>->139wholelNOTBLKze_mutedi>bparevNOTBLKe="LE_NDELAYlsdelock187FMODE6"a>141" cl6assak_dev.f="fs/block_dev61342v64a>-&13/a>->4a ree4e_countbpareS_ISBLKPORT_SYMBOL">thaw_bdielk"L1ropenbl="fs/blo       ="fs/block_dev.c>bdeireeze_mutefilpode=ysiem6/span6a            filpd_fsfreeze_m6"_parsblim6 href="fs/block_dev.c#L22613.3v64a>-&14c#L22/* Call whgonn ev" c12ruc>128bfailt;FMODE6">NULLblim6 href="fs/block_dev.c#L22613.4v64a>-&14deleaselock_dev.c#L221error"s139wholelACCESze_mutedi>bparelACCESe="LE_NDELAYlsdelock187FMODE6"moefSEn=n6assak_dev.f="fs/block_dev613.5v645>-&14deleaseholder tryss= tol13/ath"s128bmn0" id="Le"+code=ont    ="fs/block_dev.c>bdeontreeze_mutefilpode=ystontreeze_>-&14TElsdelock187FMODMNT_NODEVclass="s(&aprepMNT_NODEVim="            filpd_fsfreeze_m6"edi>bpare6assak_dev.f="fs/block_dev613.6v64an656a hreff_m633dev>gonn ev" c12ruc>128bfailt;FMODE6"ersef="2=6assak_dev.f="fs/block_dev613.7v647>-&13pan63139wholelNOMEMze_mutedi>bparevNOMEMe="LE_NDELAYlsdelock187FMODE6"moefSEn=n6 href="fs/block_dev.c#L22613.8v64a>-&14d(&aa>(thaw_bdielk"L1ropenbl="fs/blo        E_NDELAYlsdelock187FMODE6fa>bpaocke6 href="fs/block_dev.c#L22613.9v64a>-&14did="L200" ree4e_count67<6 href="fs/block_dev.c#L226135ev65a>-&135" c6   4 thaw4gonn ev" c12ruc>128bfailt;FMODE6" napaocke6assak_dev.f="fs/block_dev61351v65a>-&1aa>(FMODE6"a>141" cl6>6"+code=sb" class="sref"61352v65a>-&13ather a26efcfm6ef_sd_fpath=="srea hrlassa hropath=="sPORT_#ref="6cas the under/ath"s-&14c#L22/*a hode=mutex_unlo12>-&ev" class="s(&aprepare_to_/E_NDELAYlsdelock187FMODE6 mar/a>67<6 href="fs/block_dev.c#L2261354v65a>-&1ev" c12ruc>128bfailt;FMODE6"moefSEn=n6>6"+code=sb" class="sref"61355v655>-&14deleaseaa>(128bo"srea hrlassa hrooL26efcE_NDELAYlsdelock187FMODE6oersef="2=6assak_dev.f="fs/block_dev61357v65a>-&1"4223" 425ex_unlo13>-&=bl14d6holderef="67ck_dev.c#L228*  href="+c61358v65a>-&1l13acc>139wholel.c#L195" iEXze_mutedi>bparev.c#L195" iEXPORT_SYMBOL">thaw_bdlookup_vFMODE6oa>bpaocke6 class="line" name="L164"61359v65a>-&13bfunc"fon failsbloc@ev" 136"Le"+code=6" nasass"L249" ="L26>    6136ev66a>-&1fs/block_dev.c#L221_e" validat3223="L213nL223="L2-&13pan63128b"bt;128beeze_muteblk"L1rgesef="fk_d E_NDELAYlsdelock187FMODE6"Lass="srn6" nasass"L249" ="L26>    61363v66a>-&14c#L22/*_s/block_dev.c#L221r=eze_mutedi>bparere /bloockline" name=resd_fsfreeze_mute6;fr>137class="s 239  NUL"comyyyyyyyyyyyyyyyyy* no need nn "" ia" nasuper, get="uper holdsa" n37class="s-&145" c6s="comment"> * actu145" >yyyyyyyy* rea= " namnsn >134.c#esystem"lc m ango away37class="sbpaocke6" nasass"L249" ="L26>    61369v66a>-&13 ec"fsb=l/blim6d, -EBUSY13 ec>yyyyyyyy* unlesyus (="fs/="s="uper runs with >134"L2 he"sre6eclass="s136an626a href="fs/block_dev.c#L16137ev67a>-&1339"> 239  NUL"comySY13 ec>yyyyyyyy* hold)n37class="s128b"bt;thaw_bdievalidat32lo   eze_mutedi>bpareievalidat32lo   e_=blkev" c12ruc>128b"bt;128b"bt;-&=bl14d6"edi>bpare6 class="line" name="L164"61376v67an656a hreff_lock_dev.c#L221ievalidat32v128beeze_muteblk"L1rgesef="fk_d E_NDELAYlsdelock187FMODE6fna="socke6" nasass"L249" ="L26>    61377v677>-&13pan63-&>1eze_mutedi>bparere /bloine" name=resd_fsfreeze_mute6a>>137_bd 6" nasass"L249" ="L26>    61378v67a>-&1"4223" 425ex_unlo13>-&=bl14d6"a>bpaocke6assak_dev.f="fs/block_dev61379v67a>-&1l13acc>139wholel.c#L195" iEXze_mutedi>bparev.c#L195" iEXPORT_SYMBOL">thaw_bd_e" validat3223="L2-&1voiesid="L200" clav.2 hrat32vbparei hrat32v128bfume3dec>1366ef="fsfume6efc)_"L1rr" id="L200" clav.>13nL223="L2137" cla6assak_dev.f="fs/block_dev61382v68a>-&13release ="+c"L223, sleep13r6c__dere="26 href="fs/block_dev.c#L2261383v683>-&13/a>6eresuperblock6/span613ciaLelk"L1ropenbl="fs/blo         ev" c12ruc>128bLelk"L1ropenbl="fs/blo       ,  ev" c12ruc>128bnld=Lelk"L1ropenbl="fs/bnld=Lelk"/bloockSYMBOL">thaw_bdNULXze_mutedi>bpareNULX/bloine" name=resd_fsfreeze_mute6cFMODE6cedi>bpare6"L2bparelist_for_each_"+cryPORT_SYMBOL">thaw_bdielk"L1ropenbl="fs/blo       ,h#ref="6cas the under9"" i   ="uperb"srea hrlassa hro_/9"" i   ="uperb"sre    ="fs/block_dev.c>bdes2lo   eze_mutedi>bpares2lo   e_=bl,h8" it mult13loci_"b_list_mutefilpode=ysie"b_listto_/cw_openersd_fsfreeze_mute67128beeze_mutefilpode=ystemspan656a hrockSYMBOL">thaw_bdielk"L1ropenbl="fs/blo       ="fs/block_dev.c>bdeireeze_mutefilpode=ystemi/span656a hrE_NDELAYlsdelock187FMODE6c>>137_bd 6" nasass"L249" ="L26>    61388v68a>-&13k(&a4>(spin_"srea hrlassa hro_/"pin_"srePORT_#ref="6cas the underLelk"L1ropenbl="fs/blo       ="fs/block_dev.c>bdeir"srea hrlassa hro_/L_"srePORT E_NDELAYlsdelock187FMODE6E_EXCLef="6" nasass"L249" ="L26>    6139ev69a>-&135" c6   4 thaw4holder tryss= tol13Lelk"L1ropenbl="fs/blo       ="fs/block_dev.c>bdeir3hree_mutefilpode=ysie3hree>-&14TElsdeder tryss= tol13I_FREEING_mutefilpode=ysI_FREEING>-&1|er tryss= tol13I_WILL_FREE_mutefilpode=ysI_WILL_FREE>-&1|er tryss= tol13I_NEW"sFMODE6ELe"+code=6" nasass"L249" ="L26>    61391v69a>-&13pan63128beeze_mutefilpode=ystemspan656a hr="fs/block_dev.c>bdenrpag=eze_mutedi>bparenrpag=ea hroc= 0cw_openersd_fsfreeze_mute137" cla6" nasass"L249" ="L26>    61392v69a>-&13/a>->4deleasen4e and42ass="lin14"+c>spin_L26efca hrlassa hro_/"pin_L26efcPORT_#ref="6cas the underLelk"L1ropenbl="fs/blo       ="fs/block_dev.c>bdeir"srea hrlassa hro_/L_"srePORT E_NDELAYlsdelock187FMODE6E__dere="26" nasass"L249" ="L26>    61393v69a>-&14c#L22/* Call whhhhhhhhhco"cn6ueE_NDELAYlsdelock187FMODE6E-&=bl14d6Eefilpode=6" nasass"L249" ="L26>    61395v695>-&13/a>6eren4e and42ass="lin14"+c>_e"g11" classcL"> 240_e"g11PORT_SYMBOL">thaw_bdielk"L1ropenbl="fs/blo        E_NDELAYlsdelock187FMODE6Eedi>bpare6" nasass"L249" ="L26>    61396v69an656a hreff_m633dev>3ass="lin14"+c>spin_L26efca hrlassa hro_/"pin_L26efcPORT_#ref="6cas the underLelk"L1ropenbl="fs/blo       ="fs/block_dev.c>bdeir"srea hrlassa hro_/L_"srePORT E_NDELAYlsdelock187FMODE6EDELAYode=6a href="fs/block_dev.c#L161397v69"L1rges()67FMODE6EDELAYode=6" nasass"L249" ="L26>    61398v69a>-&12a>->fr>137class="s-&13 ec"fsb=l/blim6d, -EBUSY13 ec>yyyyyyyy* We hold a referen   nn 'Lelk"'nsn ithcouldn't have beme6eclass="s 239  NUL"comySY13 ec>yyyyyyyy* removed from s2lo   e list whc#e*we eropped n n37class="s1409"" i7perblock5/span55134Lelk" now as*we lc 37class="s 239  yyyyyyyy* be holdn61<>13439134referen   a d iput it37class="sfreSY13 ec>yyyyyyyy* lreern37class="syyyyyyyy* the filesystem and mannnnnnnnnnnnn7/edi>bpare7perblock5/span55i="srea hrlassa hroi="sPORT_ev" c12ruc>128bnld=Lelk"L1ropenbl="fs/bnld=Lelk"/blo E_NDELAYlsdelock187FMODE7a>NULLblim7" nasass"L249" ="L26>    714d7v70"L1rges()67thaw_bdLelk"L1ropenbl="fs/blo       E_NDELAYlsdelock187FMODE7a8NULLblim7" nasass"L249" ="L26>    714d8v70a>-&13k(&a4>(fume3dec>1366ef="fsfume6efcder tryss= tol13I_BDEVclass="s(&aprepI_BDEVPORT_SYMBOL">thaw_bdielk"L1ropenbl="fs/blo        ,h8" it mult13locarutefilpode=ystemarua    E_NDELAYlsdelock187FMODE7r_parsblim7" nasass"L249" ="L26>    7141ev71a>-&135" c6   * thaw_bdev drop137ouniaw_bd-7" nasass"L249" ="L26>    714f1v71a>-&13pan63FMODE7/a>141" cl7perblock5/span55-&=bl14d7/31409"" i7 class="line" name="L164"714f3v7/a>-&14c#L22/*f="fs/block_dev"pin_L26efca hrlassa hro_/"pin_L26efcPORT_#ref="6cas the underLelk"_"b_list_"srea hrlassa hro_/Lelk"_"b_list_"srePORT E_NDELAYlsdelock187FMODE7/>14028*ck7" nasass"L249" ="L26>    714f4v71a>-&14deleaselock_dev.c#L221i="srea hrlassa hroi="sPORT_ev" c12ruc>128bnld=Lelk"L1ropenbl="fs/bnld=Lelk"/blo E_NDELAYlsdelock187FMODE7bpare7" nasass"L249" ="L26>    714f6v71a>-&1l/pre1l/div>


l/div>


T134original LXRnsnftwar  byb>1349;t actuahttp://sourceforge.net/projects/lxr">LXRnref=unityto_/,b>1is experi="+cal version byb9;t actuamailto:lxr@49"ux.no">lxr@49"ux.noto_/.
l/div>

lxr.49"ux.no kindly hossed byb9;t actuahttp://www.redpill-49"pro.no">Redpill L9"pro ASto_/,bprovilesyof L9"ux"L189ulcn61