linux/block/genhd.c
<<
>>
Prefs
   1/*
   2 *  gendisk handling
   3 */
   4
   5#include <linux/module.h>
   6#include <linux/fs.h>
   7#include <linux/genhd.h>
   8#include <linux/kdev_t.h>
   9#include <linux/kernel.h>
  10#include <linux/blkdev.h>
  11#include <linux/init.h>
  12#include <linux/spinlock.h>
  13#include <linux/proc_fs.h>
  14#include <linux/seq_file.h>
  15#include <linux/slab.h>
  16#include <linux/kmod.h>
  17#include <linux/kobj_map.h>
  18#include <linux/mutex.h>
  19#include <linux/idr.h>
  20#include <linux/log2.h>
  21
  22#include "blk.h"
  23
  24static DEFINE_MUTEX(block_class_lock);
  25struct kobject *block_depr;
  26
  27/* for extended dynamic devt allocation, currently only one major is used */
  28#define MAX_EXT_DEVT            (1 << MINORBITS)
  29
  30/* For extended devt allocation.  ext_devt_mutex prevents look up
  31 * results from going away underneath its user.
  32 */
  33static DEFINE_MUTEX(ext_devt_mutex);
  34static DEFINE_IDR(ext_devt_idr);
  35
  36static struct device_type disk_type;
  37
  38static void disk_alloc_events(struct gendisk *disk);
  39static void disk_add_events(struct gendisk *disk);
  40static void disk_del_events(struct gendisk *disk);
  41static void disk_release_events(struct gendisk *disk);
  42
  43/**
  44 * disk_get_part - get partition
  45 * @disk: disk to look partition from
  46 * @partno: partition number
  47 *
  48 * Look for partition @partno from @disk.  If found, increment
  49 * reference count and return it.
  50 *
  51 * CONTEXT:
  52 * Don't care.
  53 *
  54 * RETURNS:
  55 * Pointer to the found partition on success, NULL if not found.
  56 */
  57struct hd_struct *disk_get_part(struct gendisk *disk, int partno)
  58{
  59        struct hd_struct *part = NULL;
  60        struct disk_part_tbl *ptbl;
  61
  62        if (unlikely(partno < 0))
  63                return NULL;
  64
  65        rcu_read_lock();
  66
  67        ptbl = rcu_dereference(disk->part_tbl);
  68        if (likely(partno < ptbl->len)) {
  69                part = rcu_dereference(ptbl->part[partno]);
  70                if (part)
  71                        get_device(part_to_dev(part));
  72        }
  73
  74        rcu_read_unlock();
  75
  76        return part;
  77}
  78EXPORT_SYMBOL_GPL(disk_get_part);
  79
  80/**
  81 * disk_part_iter_init - initialize partition iterator
  82 * @piter: iterator to initialize
  83 * @disk: disk to iterate over
  84 * @flags: DISK_PITER_* flags
  85 *
  86 * Initialize @piter so that it iterates over partitions of @disk.
  87 *
  88 * CONTEXT:
  89 * Don't care.
  90 */
  91void disk_part_iter_init(struct disk_part_iter *piter, struct gendisk *disk,
  92                          unsigned int flags)
  93{
  94        struct disk_part_tbl *ptbl;
  95
  96        rcu_read_lock();
  97        ptbl = rcu_dereference(disk->part_tbl);
  98
  99        piter->disk = disk;
 100        piter->part = NULL;
 101
 102        if (flags & DISK_PITER_REVERSE)
 103                piter->idx = ptbl->len - 1;
 104        else if (flags & (DISK_PITER_INCL_PART0 | DISK_PITER_INCL_EMPTY_PART0))
 105                piter->idx = 0;
 106        else
 107                piter->idx = 1;
 108
 109        piter->flags = flags;
 110
 111        rcu_read_unlock();
 112}
 113EXPORT_SYMBOL_GPL(disk_part_iter_init);
 114
 115/**
 116 * disk_part_iter_next - proceed iterator to the next partition and return it
 117 * @piter: iterator of interest
 118 *
 119 * Proceed @piter to the next partition and return it.
 120 *
 121 * CONTEXT:
 122 * Don't care.
 123 */
 124struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter)
 125{
 126        struct disk_part_tbl *ptbl;
 127        int inc, end;
 128
 129        /* put the last partition */
 130        disk_put_part(piter->part);
 131        piter->part = NULL;
 132
 133        /* get part_tbl */
 134        rcu_read_lock();
 135        ptbl = rcu_dereference(piter->disk->part_tbl);
 136
 137        /* determine iteration parameters */
 138        if (piter->flags & DISK_PITER_REVERSE) {
 139                inc = -1;
 140                if (piter->flags & (DISK_PITER_INCL_PART0 |
 141                                    DISK_PITER_INCL_EMPTY_PART0))
 142                        end = -1;
 143                else
 144                        end = 0;
 145        } else {
 146                inc = 1;
 147                end = ptbl->len;
 148        }
 149
 150        /* iterate to the next partition */
 151        for (; piter->idx != end; piter->idx += inc) {
 152                struct hd_struct *part;
 153
 154                part = rcu_dereference(ptbl->part[piter->idx]);
 155                if (!part)
 156                        continue;
 157                if (!part_nr_sects_read(part) &&
 158                    !(piter->flags & DISK_PITER_INCL_EMPTY) &&
 159                    !(piter->flags & DISK_PITER_INCL_EMPTY_PART0 &&
 160                      piter->idx == 0))
 161                        continue;
 162
 163                get_device(part_to_dev(part));
 164                piter->part = part;
 165                piter->idx += inc;
 166                break;
 167        }
 168
 169        rcu_read_unlock();
 170
 171        return piter->part;
 172}
 173EXPORT_SYMBOL_GPL(disk_part_iter_next);
 174
 175/**
 176 * disk_part_iter_exit - finish up partition iteration
 177 * @piter: iter of interest
 178 *
 179 * Called when iteration is over.  Cleans up @piter.
 180 *
 181 * CONTEXT:
 182 * Don't care.
 183 */
 184void disk_part_iter_exit(struct disk_part_iter *piter)
 185{
 186        disk_put_part(piter->part);
 187        piter->part = NULL;
 188}
 189EXPORT_SYMBOL_GPL(disk_part_iter_exit);
 190
 191static inline int sector_in_part(struct hd_struct *part, sector_t sector)
 192{
 193        return part->start_sect <= sector &&
 194                sector < part->start_sect + part_nr_sects_read(part);
 195}
 196
 197/**
 198 * disk_map_sector_rcu - map sector to partition
 199 * @disk: gendisk of interest
 200 * @sector: sector to map
 201 *
 202 * Find out which partition @sector maps to on @disk.  This is
 203 * primarily used for stats accounting.
 204 *
 205 * CONTEXT:
 206 * RCU read locked.  The returned partition pointer is valid only
 207 * while preemption is disabled.
 208 *
 209 * RETURNS:
 210 * Found partition on success, part0 is returned if no partition matches
 211 */
 212struct hd_struct *disk_map_sector_rcu(struct gendisk *disk, sector_t sector)
 213{
 214        struct disk_part_tbl *ptbl;
 215        struct hd_struct *part;
 216        int i;
 217
 218        ptbl = rcu_dereference(disk->part_tbl);
 219
 220        part = rcu_dereference(ptbl->last_lookup);
 221        if (part && sector_in_part(part, sector))
 222                return part;
 223
 224        for (i = 1; i < ptbl->len; i++) {
 225                part = rcu_dereference(ptbl->part[i]);
 226
 227                if (part && sector_in_part(part, sector)) {
 228                        rcu_assign_pointer(ptbl->last_lookup, part);
 229                        return part;
 230                }
 231        }
 232        return &disk->part0;
 233}
 234EXPORT_SYMBOL_GPL(disk_map_sector_rcu);
 235
 236/*
 237 * Can be deleted altogether. Later.
 238 *
 239 */
 240static struct blk_major_name {
 241        struct blk_major_name *next;
 242        int major;
 243        char name[16];
 244} *major_names[BLKDEV_MAJOR_HASH_SIZE];
 245
 246/* index in the above - for now: assume no multimajor ranges */
 247static inline int major_to_index(unsigned major)
 248{
 249        return major % BLKDEV_MAJOR_HASH_SIZE;
 250}
 251
 252#ifdef CONFIG_PROC_FS
 253void blkdev_show(struct seq_file *seqf, off_t offset)
 254{
 255        struct blk_major_name *dp;
 256
 257        if (offset < BLKDEV_MAJOR_HASH_SIZE) {
 258                mutex_lock(&block_class_lock);
 259                for (dp = major_names[offset]; dp; dp = dp->next)
 260                        seq_printf(seqf, "%3d %s\n", dp->major, dp->name);
 261                mutex_unlock(&block_class_lock);
 262        }
 263}
 264#endif /* CONFIG_PROC_FS */
 265
 266/**
 267 * register_blkdev - register a new block device
 268 *
 269 * @major: the requested major device number [1..255]. If @major=0, try to
 270 *         allocate any unused major number.
 271 * @name: the name of the new block device as a zero terminated string
 272 *
 273 * The @name must be unique within the system.
 274 *
 275 * The return value depends on the @major input parameter.
 276 *  - if a major device number was requested in range [1..255] then the
 277 *    function returns zero on success, or a negative error code
 278 *  - if any unused major number was requested with @major=0 parameter
 279 *    then the return value is the allocated major number in range
 280 *    [1..255] or a negative error code otherwise
 281 */
 282int register_blkdev(unsigned int major, const char *name)
 283{
 284        struct blk_major_name **n, *p;
 285        int index, ret = 0;
 286
 287        mutex_lock(&block_class_lock);
 288
 289        /* temporary */
 290        if (major == 0) {
 291                for (index = ARRAY_SIZE(major_names)-1; index > 0; index--) {
 292                        if (major_names[index] == NULL)
 293                                break;
 294                }
 295
 296                if (index == 0) {
 297                        printk("register_blkdev: failed to get major for %s\n",
 298                               name);
 299                        ret = -EBUSY;
 300                        goto out;
 301                }
 302                major = index;
 303                ret = major;
 304        }
 305
 306        p = kmalloc(sizeof(struct blk_major_name), GFP_KERNEL);
 307        if (p == NULL) {
 308                ret = -ENOMEM;
 309                goto out;
 310        }
 311
 312        p->major = major;
 313        strlcpy(p->name, name, sizeof(p->name));
 314        p->next = NULL;
 315        index = major_to_index(major);
 316
 317        for (n = &major_names[index]; *n; n = &(*n)->next) {
 318                if ((*n)->major == major)
 319                        break;
 320        }
 321        if (!*n)
 322                *n = p;
 323        else
 324                ret = -EBUSY;
 325
 326        if (ret < 0) {
 327                printk("register_blkdev: cannot get major %d for %s\n",
 328                       major, name);
 329                kfree(p);
 330        }
 331out:
 332        mutex_unlock(&block_class_lock);
 333        return ret;
 334}
 335
 336EXPORT_SYMBOL(register_blkdev);
 337
 338void unregister_blkdev(unsigned int major, const char *name)
 339{
 340        struct blk_major_name **n;
 341        struct blk_major_name *p = NULL;
 342        int index = major_to_index(major);
 343
 344        mutex_lock(&block_class_lock);
 345        for (n = &major_names[index]; *n; n = &(*n)->next)
 346                if ((*n)->major == major)
 347                        break;
 348        if (!*n || strcmp((*n)->name, name)) {
 349                WARN_ON(1);
 350        } else {
 351                p = *n;
 352                *n = p->next;
 353        }
 354        mutex_unlock(&block_class_lock);
 355        kfree(p);
 356}
 357
 358EXPORT_SYMBOL(unregister_blkdev);
 359
 360static struct kobj_map *bdev_map;
 361
 362/**
 363 * blk_mangle_minor - scatter minor numbers apart
 364 * @minor: minor number to mangle
 365 *
 366 * Scatter consecutively allocated @minor number apart if MANGLE_DEVT
 367 * is enabled.  Mangling twice gives the original value.
 368 *
 369 * RETURNS:
 370 * Mangled value.
 371 *
 372 * CONTEXT:
 373 * Don't care.
 374 */
 375static int blk_mangle_minor(int minor)
 376{
 377#ifdef CONFIG_DEBUG_BLOCK_EXT_DEVT
 378        int i;
 379
 380        for (i = 0; i < MINORBITS / 2; i++) {
 381                int low = minor & (1 << i);
 382                int high = minor & (1 << (MINORBITS - 1 - i));
 383                int distance = MINORBITS - 1 - 2 * i;
 384
 385                minor ^= low | high;    /* clear both bits */
 386                low <<= distance;       /* swap the positions */
 387                high >>= distance;
 388                minor |= low | high;    /* and set */
 389        }
 390#endif
 391        return minor;
 392}
 393
 394/**
 395 * blk_alloc_devt - allocate a dev_t for a partition
 396 * @part: partition to allocate dev_t for
 397 * @devt: out parameter for resulting dev_t
 398 *
 399 * Allocate a dev_t for block device.
 400 *
 401 * RETURNS:
 402 * 0 on success, allocated dev_t is returned in *@devt.  -errno on
 403 * failure.
 404 *
 405 * CONTEXT:
 406 * Might sleep.
 407 */
 408int blk_alloc_devt(struct hd_struct *part, dev_t *devt)
 409{
 410        struct gendisk *disk = part_to_disk(part);
 411        int idx, rc;
 412
 413        /* in consecutive minor range? */
 414        if (part->partno < disk->minors) {
 415                *devt = MKDEV(disk->major, disk->first_minor + part->partno);
 416                return 0;
 417        }
 418
 419        /* allocate ext devt */
 420        do {
 421                if (!idr_pre_get(&ext_devt_idr, GFP_KERNEL))
 422                        return -ENOMEM;
 423                rc = idr_get_new(&ext_devt_idr, part, &idx);
 424        } while (rc == -EAGAIN);
 425
 426        if (rc)
 427                return rc;
 428
 429        if (idx > MAX_EXT_DEVT) {
 430                idr_remove(&ext_devt_idr, idx);
 431                return -EBUSY;
 432        }
 433
 434        *devt = MKDEV(BLOCK_EXT_MAJOR, blk_mangle_minor(idx));
 435        return 0;
 436}
 437
 438/**
 439 * blk_free_devt - free a dev_t
 440 * @devt: dev_t to free
 441 *
 442 * Free @devt which was allocated using blk_alloc_devt().
 443 *
 444 * CONTEXT:
 445 * Might sleep.
 446 */
 447void blk_free_devt(dev_t devt)
 448{
 449        might_sleep();
 450
 451        if (devt == MKDEV(0, 0))
 452                return;
 453
 454        if (MAJOR(devt) == BLOCK_EXT_MAJOR) {
 455                mutex_lock(&ext_devt_mutex);
 456                idr_remove(&ext_devt_idr, blk_mangle_minor(MINOR(devt)));
 457                mutex_unlock(&ext_devt_mutex);
 458        }
 459}
 460
 461static char *bdevt_str(dev_t devt, char *buf)
 462{
 463        if (MAJOR(devt) <= 0xff && MINOR(devt) <= 0xff) {
 464                char tbuf[BDEVT_SIZE];
 465                snprintf(tbuf, BDEVT_SIZE, "%02x%02x", MAJOR(devt), MINOR(devt));
 466                snprintf(buf, BDEVT_SIZE, "%-9s", tbuf);
 467        } else
 468                snprintf(buf, BDEVT_SIZE, "%03x:%05x", MAJOR(devt), MINOR(devt));
 469
 470        return buf;
 471}
 472
 473/*
 474 * Register device numbers dev..(dev+range-1)
 475 * range must be nonzero
 476 * The hash chain is sorted on range, so that subranges can override.
 477 */
 478void blk_register_region(dev_t devt, unsigned long range, struct module *module,
 479                         struct kobject *(*probe)(dev_t, int *, void *),
 480                         int (*lock)(dev_t, void *), void *data)
 481{
 482        kobj_map(bdev_map, devt, range, module, probe, lock, data);
 483}
 484
 485EXPORT_SYMBOL(blk_register_region);
 486
 487void blk_unregister_region(dev_t devt, unsigned long range)
 488{
 489        kobj_unmap(bdev_map, devt, range);
 490}
 491
 492EXPORT_SYMBOL(blk_unregister_region);
 493
 494static struct kobject *exact_match(dev_t devt, int *partno, void *data)
 495{
 496        struct gendisk *p = data;
 497
 498        return &disk_to_dev(p)->kobj;
 499}
 500
 501static int exact_lock(dev_t devt, void *data)
 502{
 503        struct gendisk *p = data;
 504
 505        if (!get_disk(p))
 506                return -1;
 507        return 0;
 508}
 509
 510static void register_disk(struct gendisk *disk)
 511{
 512        struct device *ddev = disk_to_dev(disk);
 513        struct block_device *bdev;
 514        struct disk_part_iter piter;
 515        struct hd_struct *part;
 516        int err;
 517
 518        ddev->parent = disk->driverfs_dev;
 519
 520        dev_set_name(ddev, disk->disk_name);
 521
 522        /* delay uevents, until we scanned partition table */
 523        dev_set_uevent_suppress(ddev, 1);
 524
 525        if (device_add(ddev))
 526                return;
 527        if (!sysfs_deprecated) {
 528                err = sysfs_create_link(block_depr, &ddev->kobj,
 529                                        kobject_name(&ddev->kobj));
 530                if (err) {
 531                        device_del(ddev);
 532                        return;
 533                }
 534        }
 535        disk->part0.holder_dir = kobject_create_and_add("holders", &ddev->kobj);
 536        disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);
 537
 538        /* No minors to use for partitions */
 539        if (!disk_part_scan_enabled(disk))
 540                goto exit;
 541
 542        /* No such device (e.g., media were just removed) */
 543        if (!get_capacity(disk))
 544                goto exit;
 545
 546        bdev = bdget_disk(disk, 0);
 547        if (!bdev)
 548                goto exit;
 549
 550        bdev->bd_invalidated = 1;
 551        err = blkdev_get(bdev, FMODE_READ, NULL);
 552        if (err < 0)
 553                goto exit;
 554        blkdev_put(bdev, FMODE_READ);
 555
 556exit:
 557        /* announce disk after possible partitions are created */
 558        dev_set_uevent_suppress(ddev, 0);
 559        kobject_uevent(&ddev->kobj, KOBJ_ADD);
 560
 561        /* announce possible partitions */
 562        disk_part_iter_init(&piter, disk, 0);
 563        while ((part = disk_part_iter_next(&piter)))
 564                kobject_uevent(&part_to_dev(part)->kobj, KOBJ_ADD);
 565        disk_part_iter_exit(&piter);
 566}
 567
 568/**
 569 * add_disk - add partitioning information to kernel list
 570 * @disk: per-device partitioning information
 571 *
 572 * This function registers the partitioning information in @disk
 573 * with the kernel.
 574 *
 575 * FIXME: error handling
 576 */
 577void add_disk(struct gendisk *disk)
 578{
 579        struct backing_dev_info *bdi;
 580        dev_t devt;
 581        int retval;
 582
 583        /* minors == 0 indicates to use ext devt from part0 and should
 584         * be accompanied with EXT_DEVT flag.  Make sure all
 585         * parameters make sense.
 586         */
 587        WARN_ON(disk->minors && !(disk->major || disk->first_minor));
 588        WARN_ON(!disk->minors && !(disk->flags & GENHD_FL_EXT_DEVT));
 589
 590        disk->flags |= GENHD_FL_UP;
 591
 592        retval = blk_alloc_devt(&disk->part0, &devt);
 593        if (retval) {
 594                WARN_ON(1);
 595                return;
 596        }
 597        disk_to_dev(disk)->devt = devt;
 598
 599        /* ->major and ->first_minor aren't supposed to be
 600         * dereferenced from here on, but set them just in case.
 601         */
 602        disk->major = MAJOR(devt);
 603        disk->first_minor = MINOR(devt);
 604
 605        disk_alloc_events(disk);
 606
 607        /* Register BDI before referencing it from bdev */
 608        bdi = &disk->queue->backing_dev_info;
 609        bdi_register_dev(bdi, disk_devt(disk));
 610
 611        blk_register_region(disk_devt(disk), disk->minors, NULL,
 612                            exact_match, exact_lock, disk);
 613        register_disk(disk);
 614        blk_register_queue(disk);
 615
 616        /*
 617         * Take an extra ref on queue which will be put on disk_release()
 618         * so that it sticks around as long as @disk is there.
 619         */
 620        WARN_ON_ONCE(!blk_get_queue(disk->queue));
 621
 622        retval = sysfs_create_link(&disk_to_dev(disk)->kobj, &bdi->dev->kobj,
 623                                   "bdi");
 624        WARN_ON(retval);
 625
 626        disk_add_events(disk);
 627}
 628EXPORT_SYMBOL(add_disk);
 629
 630void del_gendisk(struct gendisk *disk)
 631{
 632        struct disk_part_iter piter;
 633        struct hd_struct *part;
 634
 635        disk_del_events(disk);
 636
 637        /* invalidate stuff */
 638        disk_part_iter_init(&piter, disk,
 639                             DISK_PITER_INCL_EMPTY | DISK_PITER_REVERSE);
 640        while ((part = disk_part_iter_next(&piter))) {
 641                invalidate_partition(disk, part->partno);
 642                delete_partition(disk, part->partno);
 643        }
 644        disk_part_iter_exit(&piter);
 645
 646        invalidate_partition(disk, 0);
 647        blk_free_devt(disk_to_dev(disk)->devt);
 648        set_capacity(disk, 0);
 649        disk->flags &= ~GENHD_FL_UP;
 650
 651        sysfs_remove_link(&disk_to_dev(disk)->kobj, "bdi");
 652        bdi_unregister(&disk->queue->backing_dev_info);
 653        blk_unregister_queue(disk);
 654        blk_unregister_region(disk_devt(disk), disk->minors);
 655
 656        part_stat_set_all(&disk->part0, 0);
 657        disk->part0.stamp = 0;
 658
 659        kobject_put(disk->part0.holder_dir);
 660        kobject_put(disk->slave_dir);
 661        disk->driverfs_dev = NULL;
 662        if (!sysfs_deprecated)
 663                sysfs_remove_link(block_depr, dev_name(disk_to_dev(disk)));
 664        device_del(disk_to_dev(disk));
 665}
 666EXPORT_SYMBOL(del_gendisk);
 667
 668/**
 669 * get_gendisk - get partitioning information for a given device
 670 * @devt: device to get partitioning information for
 671 * @partno: returned partition index
 672 *
 673 * This function gets the structure containing partitioning
 674 * information for the given device @devt.
 675 */
 676struct gendisk *get_gendisk(dev_t devt, int *partno)
 677{
 678        struct gendisk *disk = NULL;
 679
 680        if (MAJOR(devt) != BLOCK_EXT_MAJOR) {
 681                struct kobject *kobj;
 682
 683                kobj = kobj_lookup(bdev_map, devt, partno);
 684                if (kobj)
 685                        disk = dev_to_disk(kobj_to_dev(kobj));
 686        } else {
 687                struct hd_struct *part;
 688
 689                mutex_lock(&ext_devt_mutex);
 690                part = idr_find(&ext_devt_idr, blk_mangle_minor(MINOR(devt)));
 691                if (part && get_disk(part_to_disk(part))) {
 692                        *partno = part->partno;
 693                        disk = part_to_disk(part);
 694                }
 695                mutex_unlock(&ext_devt_mutex);
 696        }
 697
 698        return disk;
 699}
 700EXPORT_SYMBOL(get_gendisk);
 701
 702/**
 703 * bdget_disk - do bdget() by gendisk and partition number
 704 * @disk: gendisk of interest
 705 * @partno: partition number
 706 *
 707 * Find partition @partno from @disk, do bdget() on it.
 708 *
 709 * CONTEXT:
 710 * Don't care.
 711 *
 712 * RETURNS:
 713 * Resulting block_device on success, NULL on failure.
 714 */
 715struct block_device *bdget_disk(struct gendisk *disk, int partno)
 716{
 717        struct hd_struct *part;
 718        struct block_device *bdev = NULL;
 719
 720        part = disk_get_part(disk, partno);
 721        if (part)
 722                bdev = bdget(part_devt(part));
 723        disk_put_part(part);
 724
 725        return bdev;
 726}
 727EXPORT_SYMBOL(bdget_disk);
 728
 729/*
 730 * print a full list of all partitions - intended for places where the root
 731 * filesystem can't be mounted and thus to give the victim some idea of what
 732 * went wrong
 733 */
 734void __init printk_all_partitions(void)
 735{
 736        struct class_dev_iter iter;
 737        struct device *dev;
 738
 739        class_dev_iter_init(&iter, &block_class, NULL, &disk_type);
 740        while ((dev = class_dev_iter_next(&iter))) {
 741                struct gendisk *disk = dev_to_disk(dev);
 742                struct disk_part_iter piter;
 743                struct hd_struct *part;
 744                char name_buf[BDEVNAME_SIZE];
 745                char devt_buf[BDEVT_SIZE];
 746                char uuid_buf[PARTITION_META_INFO_UUIDLTH * 2 + 5];
 747
 748                /*
 749                 * Don't show empty devices or things that have been
 750                 * suppressed
 751                 */
 752                if (get_capacity(disk) == 0 ||
 753                    (disk->flags & GENHD_FL_SUPPRESS_PARTITION_INFO))
 754                        continue;
 755
 756                /*
             B8te, unlike /proc/k_all_part, I am'Resuth device
 618             ition sm juhex -n getsine > * ins lowhere th=device
 749             op parttakesailure.
 750                 */
 641                disk_part_iter_init(&piter, dis       dev);
 752                while ((part = disk_part_iter_next(&piter))) {
 663                        part = parti = &disk->parv);
 724
 685                        uuid_bu0]rt,  756                        if (pask-> 687                                (uuid_b, sizeofty(uuid_b)bj, r* 7;pUot;bdi",
 748                                         pask->dev);
 719
 690                        itions" class="sref">pacity/a>, r* 7;sr* 7;s r* 7;10llu r* 7;s r* 7;sot;bdi" par?j, rt;bdi"< :j,   ot;bdi",
 641                               bdget(part_devt(parap, devt_b)sk,
 612                         (unsig retnd asnd a)t(syafid_buf" class="+codenr_sect">syaft_devt(par k,
 623                         di, disk, pask->partsk, name_b)sk,
 754                               uuid_b)v);
 685                        if (pa))) {
 756                                if (disk->driverfs_de) != NUrt &>))) {
 687                                    disk->driverfs_dsk->fs_de) != NUf);
 748                                        itions" class="sref">pacity/a>,  sref">: r* 7;s\not;bdi",
 639                                              disk->driverfs_dsk->fs_dsk-> 690                              );
 681                                        itions" class="sref">pacity/a>,  (sref">?)\not;bdi"<)v);
 612                  }     );
 683                                itions" class="sref">pacity/a>, \not;bdi"<)v);
 684          26}
 685          /a> = disk_part_iter_exit(&piter);
 696        }
 657        class_dev_iter_exit" class="L687">class_dev_iter_next(&iter);
 6      }
 719
 6#ifdef        719
 751 6>paric 34 *paput_part" class="sref"seqf">papur_nex      struct  id_buf" class="seq_t"> struct *NUf);
 6a>))) {
 694  , part *NUr);
 695        struct class_dev_itet *iter;
 736        struct device *dev;
 697
 648        itbj = itrap, iter);
 639        if (!itr);
 690                return iter);
 701
 652        itbj = iter;
 723        class_dev_iter_init" class="sref">class_dev_iter_ini/a> = iter, &block_class, NULL, &disk_type);
 694  do/a>))) {
 685          /a> = dev = class_dev_iter_nex(&iter);
 756                if (!de);
 687                        return NULL;
 648  }       w *pa--er);
 719
 690        return dev_to_disk(dev);
 7      }
 682
 7>paric 34 * id_buf" class="seq_t"> struct *NUf);
 7a>))) {
 695        struct device *dev;
 636
 717  tt *NUf++ev;
 638        dev = class_dev_iter_nex(&itev);
 639       if (!de);
 690                return dev_to_disk(dev);
 701
 722        return NULL;
 7      }
 724
 7>paric 34 *poe=stamp" class="+cod_seqf">poer_nex      struct  id_buf" class="seq_t"> struct * 716{
 737        struct class_dev_itet *itev = itLL;
 728
 739   1 680        if (ite/a>))) {
 641                class_dev_iter_exit" class="L687">class_dev_iter_nex(&iter);
 722                ble=iter" class="+">blr_nex(&iter);
 723        }
 7      }
 755
 7>paric 34 *paput_part" class="#39;tk_all_par">papur_nex      struct  id_buf" class="seq_t"> struct *NUf);
 677{
 638  34 *itLL;
 719
 720        itrt = paput_part" class="sref"seqf">papur_nex *NUfLL;
 721        if (!it)rt &!t *NUf);
 742          truct major angle  #href=s "line\n\not;bdi"<)v);
 743        return itLL;
 7      }
 755
 7>paric , int  id_buf" class="seq_t"> struct * 677{
 678        struct gendisk *itrt =  678        struct disk_part_iter piter;
 678        struct hd_struct *part;
 721        char BDEVNAME_SIZE];
 682
 753   1 754        if (!get_capacity(it) ||    if (!distitions" class="+ref"max">distpacity(it) t &>))) {
 685                             ty(itsk->flags & it)FO))
 756                r0p>))) {
 754      y(itsk->flags & GENHD_FL_SUPPRESS_PARTITION_INF>))) {
 748                r0p>))) {
 719
 753   1 641  truct disk_part_iter_init(&piter, its       dev);
 752        while ((part = disk_part_iter_next(&piter<);
 663          truct  *r* 7;4d  r* 7;7d r* 7;10llu r* 7;s\not;bdi",
 754                      *MAJOR(part_devt(parts       MINOR(part_devt(partsk,
 685                     (unsig retnd asnd a)t(syafid_buf" class="+codenr_sect">syaft_devt(par k,
 756                  >  truct its       pask->partsk,  657        disk_part_iter_exit(&piter);
 728
 678        r0p>))) {
 6      }
 701
 6>paric cartt       struct part<77{
 623  .truct paput_part" class="#39;tk_all_par">papur_nesk,
 754  .truct ,
 685  .truct poe=stamp" class="+cod_seqf">poer_nesk,
 756  .truct  6}p>))) {
 728
 6>paric , int  id_buf" class="t"> struct * id_buf" class="t"> stru<);
 677{
 681        return  id_buf" class="t"> struLL, &paer);
 6      }
 6     }
 6>paric cartt       struct  _opefatpartitions" class="t"> _opefatpartt_iter part<77{
 685  .truct  756  .truct  657  .truct  756  .truct  756  t =  7}p>))) {
 6#ref"f>))) {
 701
 682
 7>paric       struct  partsk34 * 7a>))) {
 695      y(href=-major-r* 7;d-r* 7;dot;bdi" MAJOR(MINOR( 756           1 687          y(href=-major-r* 7;dot;bdi" MAJOR( 648        return NULL;
 6      }
 6     }
 7>paric , int __init  6a>))) {
 723  , int NULL;
 724
 685   *block_cla.truct part = kobj=stamp" class="sysdriver_sref">kobj">NULL;
 756  , int NUev = regis_der_exit(&block_claer);
 754      y(NUr<);
 748                r, int NULL;
 739        NUev = block_code_claer);
 720         701
 652        srkextot;bdi"<)v);
 6     }
 694  <1 695        if (! 756           &vepr">NUev = href=ot;bdi" NUfv);
 717        r0p>))) {
 6      }
 719
 6 if (! 701
 6>paric  if (! device *dsk,
 683                               struct  7a>))) {
 695        struct gendisk *disk = dev_to_disk(dev);
 636
 717        r if (! *r* 7;d\not;bdi"disk-> 739 9 1 680 9     9if ( )lass="=cod_range_s39;r_nex     a>)lass="=cod_ href="+code=device" class="sref">device *dsk,
 641 9     9         722 9     93="block/gen9d.c#L703"9id="L703" class="li9e" n8me="L833"> 723 9     9}
gendisk *disk = dev_to_disk(dev);
 7      }9 755
9a hre935if (! *r* 7;d\not;bdi"distpacity(disk) == 0 ||
 7>paric 94 * 677{9 638 934 *="ssizef"=stamp" class="ssizef"t_iter device *dsk,
 719
9a hre93                                      720 9     94="block/gen8d.c#L671"8id="L681"9class="li9e" n8me="L841"> 721 9     9if (!gendisk *disk = dev_to_disk(dev);
 742 9     94"block/gen8d.c#L693"8id="L693"9class="li9e" n8me="L843"> 743 9     9return i="spref"ur_nex *r* 7;d\not;bdi" 7      }9 *disk->flags & it)FO))
 755
9a hre9="blocck/gen9d9c#L708"9id="L719" class="li9e" n8me="L846"> 7>paric 9/a>, 94"block/gen9d.c#L727"9id="L727" class="li9e" n8me="L847"> 677{9 device *dsk,
 678 9     94                                678 9     9structck/gen8d.c#L671"8id="L681"9class="li9e" n8me="L850"> 678 9     9struct gendisk *disk = dev_to_disk(dev);
 721 9     95"block/gen9d.c#L722"9id="L722" class="li9e" n8me="L852"> 682
9a hre95eturn  *r* 7;d\not;bdi"disk) == 0 ||
 753 9 1 754 9     95"block/gen9d.c#L705"9id="L705" class="li9e" n8me="L855"> 685 9     955"blo="ssizef"=stamp" class="ssizef"t_iter device *dsk,
 756 9     9        r0p>))) {
 754 9    y95="block/gen8d.c#L748"8id="L748"9class="li9e" n8me="L858"> 748 9     95truct gendisk *disk = dev_to_disk(dev);
 719
9a hre9="block/gen8d.c#L660"8id="L660"9class="li9e" n8me="L860"> 753 9 1 *r* 7;d\not;bdi"disk->flags &  641 9truct96="block/gen8d.c#L712"8id="L712"9class="li9e" n8me="L862"> 752 9     96"block/gen8d.c#L693"8id="L693"9class="li9e" n8me="L863"> 663 9     963"blo="ssizef"=stamp" class="ssizef"t_iter device *dsk,
 754 9     9              * 685 9     9             (unsig retnd asnd a))))))))))))))))"buuid_buf" class=">name_brk,
 756 9     96="block/gen8d.c#L727"8id="L727"9class="li9e" n8me="L867"> 657 9     96truct gendisk *disk = dev_to_disk(dev);
 728
9a hre9="block/gen8d.c#L749"8id="L669"9class="li9e" n8me="L869"> 678 9     9r0p>))) {
 *r* 7;d\not;bdi"disk) == 0 ||
,  6      }9 701
9a hre9="block/gen8d.c#L662"8id="L672"9class="li9e" n8me="L872"> 6>paric 9artt 97 href="ssizef"=stamp" class="ssizef"t_iter device *dsk,
 623 9.truc97                      struct  754 9.truc97             * 685 9.truc9  756 9.truc9 gendisk *disk = dev_to_disk(dev);
 6}p>))) 9
 728
9a hre97eturn  *r* 7;d\not;bdi", disk) == 0 ||
,  6>paric 9/a>, 97="block/gen9d.c#L700"9id="L700" class="li9e" n8me="L880"> 677{9 681 9     981href="ssizef"=stamp" classDEVICE_AT_PTer_nex-eturn GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sgt" class="=cod_range_s39;r_nex      struct NUfv);
 6      }9)lass="ass="stamp" class="sgS_IRUG">GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sgt" cla>)lass="=cod_range_s39;r_nex     a>)lass="=cod_ hrede=NULL" class="sref">NUfv);
 6     }
9a hre983"blo="ssizef"=stamp" classDEVICE_AT_PTer_nex-eturn GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sgt" clac shw em=cod_range_s39;r_nex      c shw em=cod_ hrede=NULL" class="sref">NUfv);
 6>paric 9artt 9     struct GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sgt" clao=cod_range_s39;r_nex      o=cod_ hrede=NULL" class="sref">NUfv);
 685 9.truc985"blo="ssizef"=stamp" classDEVICE_AT_PTer_nex-eturn  *GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sg(href=cod_range_s39;r_nex(href=cod_ hrede=NULL" class="sref">NUfv);
 756 9.truc986"blo="ssizef"=stamp" classDEVICE_AT_PTer_nex-eturn GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sgt" clalignleve_offs (NUfv);
 657 9.truc98="blo="ssizef"=stamp" classDEVICE_AT_PTer_nex-eturn , GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sgt" clt" card alignleve_cod_range_s39;r_nex     t" card alignleve_cod_ hrefk/gen9d.c#L723"9id="L723" class="li9e" n8me="L888"> 756 9.truc98                        =NULL" class="sref">NUfv);
 7}p>))) 9
GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sgt" cla hrbility=cod_range_s39;r_nex     a hrbility=cod_ hrede=NULL" class="sref">NUfv);
 6#ref"f>9)) {
99f ( *GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sg(h"ss=cod_range_s39;r_nex(h"ss=cod_ hrede=NULL" class="sref">NUfv);
 701
9a hre991href="ssizef"=stamp" classDEVICE_AT_PTer_nex-eturn  *GENHD_FL_SUPPRS_IRUG"ass="stamp" class="sg(inflighs=cod_range_s39;r_nex(inflighs=cod_ hrede=NULL" class="sref">NUfv);
 682
9a hre9="bloc#ifdefe=NULL" class="sCONFIG_FAIL_MAKE_REQUEST>NUfv);
 7>paric 9     9truct dev_to_disk( 7a>))) {9 *GENHD_FL_SUPPRS_IRUG"ass=|_buf" class=">nS_IWUSPTer_nex-eturn  695 9    y9/a>( 756 9     9   1NUfv);
 687 9     997uct   648 9     9return  GENHD_FL_SUPPRS_IRUG"ass=|_buf" class=">nS_IWUSPTer_nex-eturn (timeou"=cod_ hrefk/gen9d.c#L723"9id="L723" class="li9e" n8me="L899"> 6      }9(timeou"=ctore="block/gen9d7c#L706"9id="L717"10class="li10clas8me="L899"> 6      }10cla>10cl>( 6s="lbd/83/4b9495dcd9891ce77063496c2f845db81dfb_3/10cla>/gen9d7c#L706"9id="L717"10c1ass="li10c" n8me="L891"> 701
10c" >10c"block/gen8d.c#L662"8id="L672"10c2ass="li10c" n8me="L892"> 682
10c" >10c2uct distpacity(a 7>paric 10c" >10c             +code=block_code_claref=* * 7a>))) {10c" >10c4            +code=block_code_claref=*)lass="Ter_nex-eturn )lass="    kobj=stamp" clastaspartsk     t * 695 10c" >10c5            +code=block_code_claref=* * 756 10c" >10c6            +code=block_code_claref=*gendisk * * 687 10c" >10c7            +code=block_code_claref=* * * 648 10c" >10c8            +code=block_code_claref=*,  * 6      }10c" >10c9            +code=block_code_claref=*,  * 720 10e" >10e"            +code=block_code_claref=* * 701
10e" >10e1            +code=block_code_claref=* * * 652 10e" >10e2            +code=block_code_claref=* * * 6     }
10e" >10e3bloc#ifdefe=NULL" class="sCONFIG_FAIL_MAKE_REQUEST>NUfv);
 694 10e" >10e4            +code=block_code_claref=*dev_to_disk( * 695 10e" >10ea>( 756 10e" >10e  1NUfv);
 717 10e" >10e7            +code=block_code_claref=*  * 6      }10e" >10e8>( 719
10e" >10ea href="sref_mae=stamp" clasref">NUfv);
 6 if (!<10e" >10e"="block/gen8d.c#L690"8id="L690"10e1ass="li10e" n9me="L921"> 701
10e" >10e"block/gen8d.c#L662"8id="L672"1022ass="li10e" n9me="L922"> 6>paric 10e" >10e2uct NUev =ss="+code_grou_"atas=dev_to_disk" cl/a>(aNUev =l/a>(a 683 10e" >10edistpacityapoe=stamp" claadistpacity(a 7a>))) {10e" >10e4="block/gen8d.c#L690"8id="L690"10e5ass="li10e" n9me="L925"> 695 10e" >10e5block/gen8d.c#L662"8id="L672"1026ass="li10e" n9me="L926"> 636
10e" >10e6"blo="ssizea href="t"> _opefatpartitionss="+code_grou_mae">NUev =ss="+code_grou_"atasdevice" class="a     adistpacity(a 717 10e" >10e7            +code=block_code_clar/a>(aNUev =l/a>(a10eeturn NUfv);
 739 10e" >10ef="block/gen8d.c#L690"8id="L690"103lass="li10e" n8me="L830"> 680 10e" >10e"="blk/gen8d.c#L671"8id="L691"1031ass="li10e" n8me="L831"> 641 10e" >10e"blocommencreate top-level hr*f="block/gen9d.c#L715"9id="L715"10e2ass="li10e" n8me="L832"> 722 10e" >10e2blocommencreate top-level  *       cplacet(tbl -  cplace     angle(tbl in RCU-safe wayf="block/gen9d.c#L715"9id="L715"10e3ass="li10e" n8me="L833"> 723 10e" >10e3blocommencreate top-level  * @    :sizeofto  cplace (tbl ff="b"block/gen9d.c#L715"9id="L715"10e4ass="li10e" n8me="L834"> 7      }10e" >10e4blocommencreate top-level  * @new_ptbl: new (tbl to ihref="bl"block/gen9d.c#L715"9id="L715"10e5ass="li10e" n8me="L835"> 755
10e" >10e5blocommencreate top-level  *bl"block/gen9d.c#L715"9id="L715"10e6ass="li10e" n8me="L836"> 7>paric 10e" >10e6blocommencreate top-level  * Rcplace     angle(tbl with @new_ptbl in RCU-safe way.  Thebl"block/gen9d.c#L715"9id="L715"10e7ass="li10e" n8me="L837"> 677{10e" >10e7blocommencreate top-level  * original ptbl is freed using RCU ef="back.bl"block/gen9d.c#L715"9id="L715"10e8ass="li10e" n8me="L838"> 638 10e" >10e8blocommencreate top-level  *bl"block/gen9d.c#L715"9id="L715"10e9ass="li10e" n8me="L839"> 719
10e" >10e9blocommencreate top-level  * ING:bl"block/gen9d.c#L715"9id="L715"104lass="li10e" n8me="L840"> 720 10e" >10e"blocommencreate top-level  * Matching bd_mutx 715"ed.bl"block/gen9d.c#L715"9id="L715"1041ass="li10e" n8me="L841"> 721 10e" >10e"blocommencreate top-level href="block/gen9d.c#L715"9id="L715"10e2ass="li10e" n8me="L842"> 742 10e" >10e2uct ( cplacet(tblmae">NUev =l/a>( cplacet(tblsge=s="+code=class_dev_iter="sref">gendisk *disk =  743 10e" >10e                      struct (tblmae">NUev =l/a>((tblsge==stamp" class="sgnew_ptblmae">NUev =new_ptbl="blok/gen9d.c#L723"9id="L723"1044ass="li10e" n8me="L844"> 7      }10e" >10e="block/gen9d.c#L725"9id="L725"10e5ass="li10e" n8me="L845"> 755
10e" >10etruct (tblmae">NUev =l/a>((tblsge==stamp" class="sgold_ptblmae">NUev =old_ptbl"ataod_seqf">poe=stamp" cl>disk = NUev =(tblsge=ck/gen8d.c#L690"8id="L690"1046ass="li10e" n8me="L846"> 7>paric 10e" >10e"block/gen9d.c#L727"9id="L727"10e7ass="li10e" n8me="L847"> 677{10e" >10ea href="+code=disk_part_iterrcu_e="ign_poinef">regis_der_exitrcu_e="ign_poinef"sge=stamp" class="sg" cl>disk = NUev =(tblsge="stamp" class="sgnew_ptblmae">NUev =new_ptbl="block/gen8d.c#L690"8id="L690"1048ass="li10e" n8me="L848"> 678 10e" >10e"block/gen8d.c#L749"8id="L669"10e9ass="li10e" n8me="L849"> 678 10e" >10ea href="sref_nlikelapacity" clasold_ptblmae">NUev =old_ptbl"ata)ock/gen8d.c#L685"8id="L685"105lass="li10e" n8me="L850"> 678 10e" >10e"                    tamp" class="sgrcu_e="ign_poinef">regis_der_exitrcu_e="ign_poinef"sge=stamp" class="sgold_ptblmae">NUev =old_ptbl"ata+code=partno" class=">Nt_looku_mae">NUev =">Nt_looku_sge="stamp" class="sgref">NUfv);
 721 10e" >10e       NUev =old_ptbl"ata"stamp" class="sgrcu_haft_de        >  t 682
10e" >10e2            ck/gen9d.c#L700"9id="L700"10e3ass="li10e" n8me="L853"> 753 10e" >10e="block/gen8d.c#L724"8id="L724"10e4ass="li10e" n8me="L854"> 754 10e" >10e"block/gen9d.c#L705"9id="L705"10e5ass="li10e" n8me="L855"> 685 10e" >10e5blocommencreate top-level hr*f="block/gen9d.c#L715"9id="L715"1056ass="li10e" n8me="L856"> 756 10e" >10e6blocommencreate top-level  *      a>ppan (tbl - a>ppan     angle(tblf="block/gen9d.c#L715"9id="L715"1057ass="li10e" n8me="L857"> 754 10e" >10e7blocommencreate top-level  * @    :sizeofto a>ppan (tbl ff="b"block/gen9d.c#L715"9id="L715"1058ass="li10e" n8me="L858"> 748 10e" >10e8blocommencreate top-level  * @a> *ppan such that this a> * 719
10e" >10e9blocommencreate top-level  *"b"block/gen9d.c#L715"9id="L715"106lass="li10e" n8me="L860"> 753 10e" >10e"blocommencreate top-level  * E>ppan     angle(tbl such that @a> *(tblf="block/gen9d.c#L715"9id="L715"1061ass="li10e" n8me="L861"> 641 10e" >10e"blocommencreate top-level hr uses RCU to f="ow un715"ed de9d.e9dncing ff=  752 10e" >10e2blocommencreate top-level  *bl"block/gen9d.c#L715"9id="L715"1063ass="li10e" n8me="L863"> 663 10e" >10e3blocommencreate top-level  * ING:bl"block/gen9d.c#L715"9id="L715"1064ass="li10e" n8me="L864"> 754 10e" >10e4blocommencreate top-level  * Matching bd_mutex 715"ed, mighs sleep.bl"block/gen9d.c#L715"9id="L715"1065ass="li10e" n8me="L865"> 685 10e" >10e5blocommencreate top-level  *bl"block/gen9d.c#L715"9id="L715"1066ass="li10e" n8me="L866"> 756 10e" >10e6blocommencreate top-level  * RETURNS:bl"block/gen9d.c#L715"9id="L715"1067ass="li10e" n8me="L867"> 657 10e" >10e7blocommencreate top-level  * 0 on success, -err 728
10e" >10e8blocommencreate top-level  *ef="block/gen9d.c#L715"9id="L715"1069ass="li10e" n8me="L869"> 678 10e" >10e9blocrroe=piter" class="     a>ppan (tblmae">NUev =l/a>(a>ppan (tblsge=s="+code=class_dev_iter="sref">gendisk *disk = partsk34 * 6      }10e" >10e""block/gen9d.c#L725"9id="L725"1071ass="li10e" n8me="L871"> 701
10e" >10ef (!(tblmae">NUev =l/a>((tblsge==stamp" class="sgold_ptblmae">NUev =old_ptbl"ataod_seqf">poe=stamp" cl>disk = NUev =(tblsge=ck/gen8d.c#L690"8id="L690"1072ass="li10e" n8me="L872"> 6>paric 10e" >10e2 (!(tblmae">NUev =l/a>((tblsge==stamp" class="sgnew_ptblmae">NUev =new_ptbl="blck/gen8d.c#L690"8id="L690"1073ass="li10e" n8me="L873"> 623 10e" >10ent NUev ="en"ataod_seqf">poe=stampold_ptblmae">NUev =old_ptbl"atao?_seqf">poe=stampold_ptblmae">NUev =old_ptbl"ata+code=partno" class="enmae">NUev ="en"atao:lock/gen9d.c#L708"9id="L718"10e4ass="li10e" n8me="L874"> 754 10e" >10e4t poe=stamp"sref">partsk34 * 685 10e" >10ea href="bcode=block_class" c"ssizef"t_iter  * 756 10e" >10e6t  * 6}p>))) 10e" >10e"block/gen7d.c#L698"7id="L698"10e8ass="li10e" n8me="L878"> 728
10e" >10eeturn ( 6>paric 10e" >10ea href="sref_nlikelapacity" clasref"ass="+ref"max">distpacity(disk) == 0 ||
, distpacity(disk) == 0 ||
 677{10e" >10e"      NUfv);
 681 10e" >10e"block/gen8d.c#L662"8id="L672"1082ass="li10e" n8me="L882"> 6      }10e" >10e2 href="sref_nlikelapacity" clastarg (_bsk, poe=stamp"enmae">NUev ="en"ataok/gen9d.c#L715"9id="L715"1083ass="li10e" n8me="L883"> 6     }
10e" >10e                     ref="block/gen9d.c#L708"9id="L718"10e4ass="li10e" n8me="L884"> 6>paric 10e" >10e"block/gen9d.c#L705"9id="L705"1085ass="li10e" n8me="L885"> 685 10e" >10ea href="bcode=block_class" c"ssi"ur_nex *NUev =new_ptbl="blo + elapacity" clastarg (_bsk, NUev =new_ptbl="bl+code=partno" class="sre>partsk34 *"ata[0]ock/gen9d7c#L706"9id="L717"1086ass="li10e" n8me="L886"> 756 10e" >10e6 href="bcode=block_class" cnew_ptblmae">NUev =new_ptbl="blbject_create_and_adzf="oc_nnd_>NUfv);
 *NUfv);
disk =   tnnd__it="block/gen9d7c#L706"9id="L717"1087ass="li10e" n8me="L887"> 657 10e" >10e7 href="sref_nlikriveprecatefid_bnew_ptblmae">NUev =new_ptbl="blok/gen9d.c#L723"9id="L723"1088ass="li10e" n8me="L888"> 756 10e" >10e                     ="+codeatamp" class="sgENOMEM>NUfv);
 7}p>))) 10e" >10e"block/gen8d.c#L660"8id="L660"109lass="li10e" n8me="L890"> 6#ref"f>10e" >10e" href="bcode=block_class" cnew_ptblmae">NUev =new_ptbl="bl+code=partno" class="enmae">NUev ="en"ataoject_create_and_atarg (_bsk,  701
10e" >10e"block/gen8d.c#L662"8id="L672"1092ass="li10e" n8me="L892"> 682
10e" >10e2 href="sref_ff= stamp" class="sgi"ur_nex * *poe=stamp"enmae">NUev ="en"ataee=gendisk" classi"ur_nex * 7>paric 10e" >10e                     tamp" class="sgrcu_e="ign_poinef">regis_der_exitrcu_e="ign_poinef"sge=stamp" class="sgnew_ptblmae">NUev =new_ptbl="bl+code=partno" class="sre>partsk34 *"ata[=gendisk" classi"ur_nex *NUev =old_ptbl"ata+code=partno" class="sre>partsk34 *"ata[=gendisk" classi"ur_nex * 7a>))) {10e" >10e"block/gen9d.c#L705"9id="L705"1095ass="li10e" n8me="L895"> 695 10e" >10ea href="bcode=block_class" cr/a>( cplacet(tblmae">NUev =l/a>( cplacet(tblsge=stamp" class="sgref">disk = NUev =new_ptbl="block/gen8d.c#L690"8id="L690"1096ass="li10e" n8me="L896"> 756 10e" >10e6 href="bcoderef="block/gen9d.c#L708"9id="L718"1097ass="li10e" n8me="L897"> 687 10e" >10e7"block/gen8d.c#L724"8id="L724"1098ass="li10e" n8me="L898"> 648 10e" >10e"block/gen8d.c#L749"8id="L669"1099ass="li10e" n8me="L899"> 6      }10e" >10e9"blo="ssize"+ata=block_code_clar/a>( cleasf"ur_nex *( cleasfsge=s="+code=class_dev_iter"sref">device *dsk,
 6      }11cla>110""block/gen9d.c#L725"9id="L725"11c1ass="li11c" n8me="L891"> 701
11c" >110f (!gendisk *disk = dev_to_disk(dev);
 682
11c" >110"block/gen8d.c#L693"8id="L693"1103ass="li11c" n8me="L893"> 7>paric 11c" >11c             =block_code_clar/a>( cleasf_evenf"max">distpacity( cleasf_evenf"sge=stamp" class="sgref">disk) == 0 ||
 7a>))) {11c" >11c4            tamp" class="sgkfree>NUfv);
disk) == 0 ||
regis_der_exitrandom 695 11c" >110a href="bcode=block_class" cr/a>( cplacet(tblmae">NUev =l/a>( cplacet(tblsge=stamp" class="sgref">disk = NUfv);
 756 11c" >1106 href="bcode=block_class" cfree_(h"ss">flags &ree_(h"ss"sge=s+code=block_code_clar/a>>disk =  687 11c" >110a href="+code=disk_part_iter;ree_(inf">partsk34(inf"sge=s+code=block_code_clar/a>>disk =  648 11c" >11c8            nlikelapacity" clasref">disk = ,  6      }11c" >110                     tamp" class="sgblk_put_queue_bsk, disk) == 0 ||
,  720 11e" >111" href="bcode=block_class" ckfree>NUfv);
disk) == 0 ||
 701
11e" >111="block/gen8d.c#L712"8id="L712"11=2ass="li11e" n9me="L912"> 652 11e" >1112uct  6     }
11e" >111NUev =n                  =string">r* 7;d\not;bdi"L725"  694 11e" >1114="block/gen8d.c#L690"8id="L690"1115ass="li11e" n9me="L915"> 695 11e" >1115block/gen8d.c#L662"8id="L672"11e6ass="li11e" n9me="L916"> 756 11e" >1116"blo="ssizeabuuid_buf" class=">na712"_refnnd_>NUfv);
device *dsk,
 717 11e" >111="block/gen8d.c#L748"8id="L748"1118ass="li11e" n9me="L918"> 6      }11e" >111truct gendisk *disk = dev_to_disk(dev);
 719
11e" >111"block/gen8d.c#L660"8id="L660"112lass="li11e" n9me="L920"> 6 if (!<11e" >1120            nlikelapacity" clasref">disk = NUfv);
 701
11e" >112       disk = NUfv);
disk =  6>paric 11e" >112eturn NUfv);
 683 11e" >112="block/gen8d.c#L724"8id="L724"1124ass="li11e" n9me="L924"> 7a>))) {11e" >112"block/gen9d.c#L705"9id="L705"11e5ass="li11e" n9me="L925"> 695 11e" >1125"blo="ssize="kobjed_struct" classce" clatyp">device *(typ">device *(typ"="+codeck/gen9d.c#L725"9id="L725"1126ass="li11e" n9me="L926"> 636
11e" >1126a href="spaput_part" class="    mae">NUev =n                  =string">r* 7;d\not;bdi" /a>  717 11e" >11e7            ut_part" class="grou_"max">distpacitygrou_""ata         =stange_s39;t_parl/a>(adistpacity(a11eeturn  *( cleasf"ur_nex *( cleasfsge=dk/gen8d.c#L693"8id="L693"1129ass="li11e" n8me="L829"> 739 11e" >1129turn NUfv);
 680 11e" >113"="block/gen8d.c#L690"8id="L690"1131ass="li11e" n8me="L831"> 641 11e" >113"block/gen8d.c#L662"8id="L672"11e2ass="li11e" n8me="L832"> 722 11e" >113"bloc#ifdefe=NULL" class="sCONFIG_PROC_FS>NUfv);
 723 11e" >11e3blocommencreate top-level /*bl"block/gen9d.c#L715"9id="L715"11e4ass="li11e" n8me="L834"> 7      }11e" >11e4blocommencreate top-level  * aggregate       755
11e" >11e5blocommencreate top-level  * everies do, above, but makes them availw em through on   7>paric 11e" >11e6blocommencreate top-level  *bl"block/gen9d.c#L715"9id="L715"11e7ass="li11e" n8me="L837"> 677{11e" >11e7blocommencreate top-level  * Th  output looks suspiciously like /proc/"sreitions with a bunch ofbl"block/gen9d.c#L715"9id="L715"11e8ass="li11e" n8me="L838"> 638 11e" >11e8blocommencreate top-level  * extra fields.bl"block/gen9d.c#L715"9id="L715"11e9ass="li11e" n8me="L839"> 719
11e" >11e9blocommencreate top-level  *ef="block/gen9d.c#L715"9id="L715"114lass="li11e" n8me="L840"> 720 11e" >114f ( *dev);
 721 11e" >11e"blocck/gen9d.c#L725"9id="L725"11e2ass="li11e" n8me="L842"> 742 11e" >1142 (!gendisk *NUev =g_="+codotamp" class="sg">dev);
 743 11e" >11e             ="+code=gendisk" classcexit(ief">regis_der_exitscexit(ief=cod_range_s39;t_parpief">regis_der_exitscp24d.c#L715"9id="L715"1062ass="li10isk" classi"ur_nex * 6k/gen144"+code=gendisk" classcexit(iefhd_sk" clitscp24d.c#L715hd_sk" cllass="sgg_mae">NUev 755
10e" >10etruct1upan class="string">r* 7assi"ur_nex BDEVNAME_SIZEan class="strinBDEVNAME_SIZEd7c#L5"1062ass="li10isk" classi"urn8me="L836"> 7>paric 10e" >10e"bloc1/gen914rroe=piter" class="i"ur_nex cpu 0isk 677{10e" >10ea hre1="+co14c#L698"7id="L698"10e8ass="li10e1 n8me="L841"> 678 10e" >10e"bloc1/gen814ommencreate top-level hre( 678 10e" >10ea hre1="sre14ate top-level  *ef="block/geapacity" clode_codeck/ok/ge(gp) claskobj.bovey == +codeck/gen.od_rans.nbl")d.c#L715"9id="L715"114lass="li11e" n8me="L851"> 678 10e" >10e"    1     15ate top-level  * E>ppan                    stampics(tast,  dk/genmajor minor 10e"dk/gen8d.c#L65"9id="L715"114lass="li11e" n8me="L841"> 721 10e" >10e     1  682
10e" >10e2    1     15ate top-level  *bl"block/genooooooooooooooooooooooooooooooodk/genwsthe wuse runnatiouse aveqdk/gen8d.c#L65"9id="L715"114lass="li11e" n8me="L843"> 753 10e" >10e="blo1k/gen15ate top-level  * ING:bl"ooooooooooooooooooooooooooooooodk/gen\ncode=dis)n8d.c#L65"9id="L715"114lass="li11e" _nex *"> 754 10e" >10e"bloc1/gen915ate top-level  * aggregate         n9d.c#L715"9id="L715"114lass="li11e" n8me="L851"> 685 10e" >10e5bloc1mmenc15c#L662"8id="L672"11e6ass="li11e" n8me="L851"> 756 10e" >10e6bloc1mmenc15=block_class" cfree_(h"sf=cod_range_s3_nferitscexit(ief=cod_range_s3_nferock_code_clar/a>>disker_exitscp24d.c#L715"9id="L71="sgmnd_>NUfva> =g_="+codotamp" clas="sgmnd_>NUfvDISK_PITER_INCL_EMPTY_PART 754 10e" >10e7bloc1mmenc15ut_part" claswh" c ("sgref">diskh  tnnd__it="blochd"L71t_parl/a>( cleasf"ur_ne_range_s3_nbl"itscexit(ief=cod_range_s3_nbl"ock_code_clar/a>>disker_exitscp24d.c#L715"9id="L71))L685"8id="L685"105lass="li10e1 n8me="L851"> 748 10e" >10e8bloc1mmenc15        ="+codeatamp"="i"ur_nex cpu 0iskpartsk34 719
10e" >10e9bloc1mmenc15        tamp" class="sg(timeou"=ctore_find/a> &ree_(h"sctore_find/a> &aass="sgref">diskcpu 0iskNUfvh  tnnd__it="blochd"L71716"9id="L726"1122ass="li11e" n8me="L861"> 753 10e" >10e"bloc1mmenc16        tamp" class="sgrcu_e="ign_pogen9ede=NU.e9dnca "sre0="block/gen9ede=NU.e9dncock_c716"9id="L726"1122ass="li11e" n8me="L861"> 641 10e" >10e"bloc1mmenc16f="L687"tamp" class="sgkfree_rcu>NUfstamprlas*diska> *  752 10e" >10e2bloc1mmenc162="L687"tamp" class="mp" class="snot;bdi" /a>  663 10e" >10e3bloc1mmenc16         struct diskMAJOn diskgen9eod_k *"ata[=gendiskeod_kass="sgref">diskh  tnnd__it="blochd"L717)="sgmnd_>NUfvMINOn diskgen9eod_k *"ata[=gendiskeod_kass="sgref">diskh  tnnd__it="blochd"L717)=3"8id="L693"1127ass="li11e" _nex *"> 754 10e" >10e4bloc1mmenc164        struct diskf=cod =n            f=codass="sgref">diska> =g_="+codotamp" clas="sgmnd_>NUfvh  tnnd__it="blochd"L71 class="sre0>disk = ak *r* 7)=3"8id="L693"1127ass="li11e" n8me="L851"> 685 10e" >10e5bloc1mmenc165        struct diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvioamp;ree_(h"sioar* 7assi"ur_nex READmp;ree_(h"sREADd7c#L)=3"8id="L693"1127ass="li11e" n8me="L851"> 756 10e" >10e6bloc1mmenc166        struct diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvmergeamp;ree_(h"smergear* 7assi"ur_nex READmp;ree_(h"sREADd7c#L)=3"8id="L693"1127ass="li11e" n8me="L851"> 657 10e" >10e7bloc1mmenc167        struct diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvsthe samp;ree_(h"ssthe sar* 7assi"ur_nex READmp;ree_(h"sREADd7c#L)=3"8id="L693"1127ass="li11e" n8me="L851"> 728
10e" >10e8bloc1mmenc16           =NULL" class=  ="kobjsgref">diskjiffiesk/okmsthamp;ree_(h"sjiffiesk/okmsthaass="sgref">diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvtickamp;ree_(h"stickar* 7assi"ur_nex READmp;ree_(h"sREADd7c#L))=3"8id="L693"1127ass="li11e" n8me="L839"> 678 10e" >10e9bloc1roe=p16        tamp" class="ef   ="kobjsgref">diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvioamp;ree_(h"sioar* 7assi"ur_nex WRITEmp;ree_(h"sWRITEd7c#L)=3"8id="L693"1127ass="li11e" n8me="L871"> 6      }10e" >10e""blo1k/gen17        tamp" class="ef   ="kobjsgref">diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvmergeamp;ree_(h"smergear* 7assi"ur_nex WRITEmp;ree_(h"sWRITEd7c#L)=3"8id="L693"1127ass="li11e" n8me="L861"> 701
10e" >10ef (!<1 href17f="L687"tamp" class="ef   ="kobjsgref">diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvsthe samp;ree_(h"ssthe sar* 7assi"ur_nex WRITEmp;ree_(h"sWRITEd7c#L)=3"8id="L693"1127ass="li11e" n8me="L861"> 6>paric 10e" >10e2 (!<1 href172="L687"tamp" class="mp" class="sgref">diskjiffiesk/okmsthamp;ree_(h"sjiffiesk/okmsthaass="sgref">diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvtickamp;ree_(h"stickar* 7assi"ur_nex WRITEmp;ree_(h"sWRITEd7c#L))=3"8id="L693"1127ass="li11e" n8me="L861"> 623 10e" >10ent disks+code=_ * *ass="sgref">diskh  tnnd__it="blochd"L717=3"8id="L693"1127ass="li11e" _nex *"> 754 10e" >10e4t diskjiffiesk/okmsthamp;ree_(h"sjiffiesk/okmsthaass="sgref">diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvio_tickamp;ree_(h"sio_ticka"L717)=3"8id="L693"1127ass="li11e" n8me="L871"> 685 10e" >10ea hre1="bco175        struct diskjiffiesk/okmsthamp;ree_(h"sjiffiesk/okmsthaass="sgref">diskgen9ede=NUr >  t ass="sgref">diskh  tnnd__it="blochd"L71="sgmnd_>NUfvbj=sde=_,  756 10e" >10e6t  6}p>))) 10e" >10e"bloc1/gen7177        stru24"8id="L724"1124ass="li11e" n8me="L871"> 728
10e" >10eeturn1NUfvf=cod_range_s3_exeritscexit(ief=cod_range_s3_exerock_code_clar/a>>disker_exitscp24d.c#L715"9id="L71)16"9id="L726"1122ass="li11e" n8me="L839"> 6>paric 10e" >10ea hre1="sre17c#L660"8id="L660"112lass="li11e" n8me="L881"> 677{10e" >10e"    1  681 10e" >10e"bloc1/gen818.c#L712"8id="L712"11=2ass="li11e" n8me="L881"> 6      }10e" >10e2 hre1="sre18c#L693"8id="L693"1103ass="li11c" n8me="L881"> 6     }
10e" >10e     1     1      ="t"> _opefatpartitionss="+code_grotasmoper_nlisamp;ree_(h"sstsmoper_nlisa9;t_parpief">regis_d_sge=s="+co> =l/a>(a"L71sta85"8id="L685"105lass="li10e1 n8me="L881"> 6>paric 10e" >10e"bloc1/gen9184        strus="refnnd_>NUfv<=s=ak *"ata[=gen=s=ak      _parl/a>( cleasf"ur_netast_=s=ak *"ata[=genur_netast_=s=ak"L71=5"8id="L685"105lass="li10e1 n8me="L871"> 685 10e" >10ea hre1="bco1e=block_class"s="    mae">NUev(ienbl"ock_   _parl/a>( cleasf"ur_netast_nbl"itscexit(ief=codtast_nbl""L71=5"8id="L685"105lass="li10e1 n8me="L851"> 756 10e" >10e6 hre1="bco18ut_part" class="    mae">NUevsto> =l/a>(aock_   _parl/a>( cleasf"ur_netast_sto> =l/a>(a"L71=5"8id="L685"105lass="li10e1 n8me="L871"> 657 10e" >10e7 hre1="sre18ut_part" class="grou_"max">di;r_nex    ( cleasf"ur_nge_s39;r_nex     756 10e" >10e     1     1      690"8id="L690"1131ass="li11e" n8me="L881"> 7}p>))) 10e" >10e"bloc1/gen81.c#L660"8id="L660"109lass="li10e1 n8me="L891"> 6#ref"f>10e" >10e" hre1="bco19roe=piter" class="     ="en"ataee=gen_range_s39ope>ock_cpartitionss="+code_groi);
NUev 701
10e" >10e"bloc1/gen819.c#L725"9id="L725"11e2ass="li11e" n8me="L891"> 682
10e" >10e2 hre1="sre19="+code=NULL" class="sref">NUfvstsmope> ="en"ataee=genstsmope>ass="sgref">disk;r_nex(a =l/a>(a"L71)16"9id="L726"1122ass="li11e" n8me="L891"> 7>paric 10e" >10e     1     19.c#L724"8id="L724"1124ass="li11e" n8me="L891"> 7a>))) {10e" >10e"bloc1/gen91.c#L705"9id="L705"1095ass="li10e1 n8me="L891"> 695 10e" >10ea hre1="bco195    ="t"> _opefatpartitionss="+code_grop" cmoper_nlisamp;ree_(h"sp" cmoper_nlisa9;t_parpief">regis_dns w__range_s39oper_nlisamp;ree_(h"sns w__range_s39oper_nlisa"L71sta85"8id="L685"105lass="li10e1 n8me="L891"> 756 10e" >10e6 hre1="bco19ut_part" class="    mae">NUevope> ="en"ataee=genope>ass= href   ="k_parl/a>( cleasf"ur_nge_s39ope> ="en"ataee=gen_range_s39ope>ock_=5"8id="L685"105lass="li10e1 n8me="L891"> 687 10e" >10e7"blo1k/gen19ut_part" class="grou_"max">dir >  t ass= href   ="k_parl/a>( cleasf"stsmr >  t ock_=5"8id="L685"105lass="li10e1 n8me="L871"> 648 10e" >10e"bloc1/gen819ut_part" class=" cleasf"ur_nellseeca "sre0="block/llseecass= href   =_parl/a>( cleasf"stsmlseeca "sre0="block/stsmlseecock_=5"8id="L685"105lass="li10e1 n8me="L881"> 6      }10e" >10e9"blo1"ssiz19ut_part" class="refnnd_>NUfv *( cleasf"stsmr /a> * *ock_=5"8id="L685"105lass="li10e2as8me="L892"> 6      }11cla>110""blo2k/gen20d.c#L690"8id="L690"1131ass="li11e2 n8me="L892"> 701
11c" >110f (!<2 href20c#L662"8id="L672"11e2ass="li11e2 n8me="L892"> 682
11c" >110"bloc2/gen8202oe=piter" class="    (ie__nferock_parpief">regis_dns w_ass="_nferitscexit(iens w_ass="_nferass="lass)3"8id="L693"1127ass="li11e2 n8me="L892"> 7>paric 11c" >11c     2     2 =bloc85"8id="L685"105lass="li10e2 n8me="L892"> 7a>))) {11c" >11c4    2     2 tamp" class="sgkfree>NUfvt*t*ass="snot;bdi" /a> NUfv);
 695 11c" >110a hre2="bco2e=block_class" cr/a>( cplacetns w_cr >t*t*ass="snot;bdi" /a> NUfv);
 756 10e" >10e6 hre2="bco20ref="block/gen9d.c#L708"9id="L718"1097ass="li10e2 n8me="L892"> 687 11c" >110a hre2="+co20.c#L724"8id="L724"1098ass="li10e2 n8me="L892"> 648 11c" >11c8    2     2 nlikesgmnd_>NUfvmodule_nferitscexit(iemodule_nferass="sgref">diskgs w_ass="_nferitscexit(iens w_ass="_nferass=)16"9id="L726"1122ass="li11e2 98me="L892"> 6      }10e" >10e9"blo2     2      #amp"ftop-level hre( 720 11e" >111" hre2="bco21c#L671"8id="L691"1031ass="li10e2 n9me="L912"> 701
11e" >111="blo2k/gen2d.c#L7arl/a>( cleasf"ude=d ="en"ataee=gen_de=dock_parpief">regis_dsge=amp" ceod_k *"ata[=gensge=amp" ceod_kass="opefatlass=">na712"_refnnd_ =n                  =s class=""sref">partsk34 * 652 11e" >1112uct 2a+cod2=gendi85"8id="L685"105lass="li10e2 n9me="L912"> 6     }
11e" >111( cleasf"ude=d ="en"ataee=gen_de=dock_parpief">regis_dod_k *"ata[=genod_kass=t_parl/a>( cleasf"MKDEV *"ata[=genMKDEVass="0="0)16"9id="L726"1122ass="li11e2 n9me="L912"> 694 11e" >1114="bl2ck/ge214"+code=gendisk" classcexit(ief94(ie94regis_dr_exitscexit(ie9id="L715"1062ass="li10isk" classi"2 n9me="L912"> 695 11e" >1115bloc2/gen821="+code=gendisk" classcexit(tblm/a> *dsk,
 756 11e" >1116"blo2"ssiz21c#L727"9id="L727"10e7ass="li10e2 n9me="L912"> 717 11e" >111="blo2k/gen21=disk_part_iter;ree_(inf94(ie94>diskr_exitscexit(ie9id="L71,code_clar/a>(a) == 0L712"_9me="="+codeck/gen9d.c="sgref">NUfv);
 6      }11e" >111truct2disk( cleasf"94(ie94>diskr_exitscexit(ie9id="L71))L685"8id="L685"105lass="li10e2 n9me="L912"> 719
11e" >111"bloc2/gen821        tamp" class="sk" class="sref">gendisk *disk = dev_to_disk(dev);
 6 if (!<11e" >1120    2     22        tamp" class="sk" classcexit(iefhd_sk" clitscp24d.c#L715hd_sk" cllass="sgg_mae">NUev *"ata[=gendisk" cl16"9id="L726"1119ass="li11e2 n9me="L912"> 701
11e" >112     2  6>paric 11e" >112eturn2disksk"cm> =l/a>(aass="sref">dev);
 =n            fass="sref">dev);
N/a> =n                  =s7)3"8id="L693"1127ass="li11e2 n9me="L922"> 683 11e" >112="blo2k/gen22         struct  7a>))) {11e" >112"bloc2/gen92.c#L705"9id="L705"11e5ass="li11e2 n9me="L922"> 695 11e" >1125"blo2"ssiz225        struct disk34 *NUev< = NUfv(h"sminora  =s7685"8id="L685"105lass="li10e2 n9me="L922"> 636
11e" >1126a hr2f="sp226        struct  717 11e" >11e7    2     22ate top-level  * Th  output                         *r" clockth a bunc doesn't exifatyet9d.c#L715"9id="L715"11e9ass="li11e2ter" class2href="#39;t11_it>11eeturn2 739 11e" >1129turn2regis_dod_k *"ata[=genod_kass=t_parl/a>( cleasf"MKDEV *"ata[=genMKDEVass="arl/a>( cleasf"MAJOn disk
 680 11e" >113"="bl2ck/ge23        tamp" class="ef   ="kobj="ef   ="karpief">regis_dMINOn disk
 * 641 11e" >113"bloc2/gen823f="L687"tamp" class="ef   ="kbreak16"9id="L726"1119ass="li11e2 n9me="L922"> 722 11e" >113"bloc2ifdef232="L687"tamp" class="24"8id="L724"1098ass="li10e2 n8me="L832"> 723 11e" >11e3bloc2mmenc23        tamp" class="sgrcu_e="ign_po *"ata[=gendisk" cl _parl/a>( cleasf"ur_neget_ *"ata[=genur_neget_disk
=  7      }11e" >11e4bloc2mmenc234        struct disk34 *"ata[=gendisk" cl7685"8id="L685"105lass="li10e2 n8me="L832"> 755
11e" >11e5bloc2mmenc235        struct regis_dod_k *"ata[=genod_kass=t_parl/a>( cleasf"gen9eod_k *"ata[=gendiskeod_kass="sgref">disk34 *"ata[=gendisk" cl716"9id="L726"1119ass="li11e2 n9me="L922"> 7>paric 11e" >11e6bloc2mmenc236        struct  *"ata[=genur_nestamdisk34 *"ata[=gendisk" cl716"9id="L726"1119ass="li11e2 n9me="L922"> 677{11e" >11e7bloc2mmenc237        struct  638 11e" >11e8bloc2mmenc23           =NULL" cla24"8id="L724"1098ass="li10e2 n8me="L822"> 719
11e" >11e9bloc2mmenc23        tamp" class="sg(timeou"=ur_nestam *"ata[=genur_nestamdisk34 *"ata[=gendisk" cl716"9id="L726"1119ass="li11e2 n8me="L842"> 720 11e" >114f ( 721 11e" >11e"bloc2k/gen24f="L687"tamp"arl/a>( cleasf"94(ie94>diskr_exitscexit(ie9id="L71)16"9id="L726"1119ass="li11e2 n9me="L922"> 742 11e" >1142 (!<2 href24="+code=NULL" class="sref">NUfvod_k *"ata[=genod_kass=16"9id="L726"1119ass="li11e2 n8me="L832"> 743 11e" >11e     2     24.c#L724"8id="L724"1124ass="li11e2r_nex 2 2k/gen244"+co"sref">NUfvEXPORT_SYMBOdisksge=amp" ceod_k *"ata[=gensge=amp" ceod_kass=)16"9id="L726"1119ass="li11e2 n8me="L832"> 755
10e" >10etruct2 7>paric 10e" >10e"bloc2/gen924buuid_b" class="sref">gendisk *disk=stamp/a> *partskminoramp;ree_(h"sminora  =s72"8id="L672"11e6ass="li11e2rn9me="L922"> 677{10e" >10ea hre2="+co24.c#L748"8id="L748"1118ass="li11e2 n8me="L842"> 678 10e" >10e"bloc2/gen824ommencreate t class="sref">NUfv=stamp/a> >);
diskminoramp;ree_(h"sminora  =s, -1)16"9id="L726"1119ass="li11e2 n8me="L822"> 678 10e" >10ea hre2="sre24ate t24"8id="L724"1124ass="li11e2 n8me="L852"> 678 10e" >10e"    2     25ate tosref">NUfvEXPORT_SYMBOdisk=stamp/a> * 721 10e" >10e     2  682
10e" >10e2    2     25gendisk" class9me=">disk *disk=stamp/a> >);
partskminoramp;ree_(h"sminora  =s class=""sref">partsk     >  tnnd__it="block/gen9d7c#L72"8id="L672"11e2ass="li11e2 n8me="L832"> 753 10e" >10e="blo2k/gen25=bloc85"8id="L685"105lass="li10e2 _nex 2"> 754 10e" >10e"bloc2/gen9254"+code=gendisk" classcexit(iefsk *disk =  685 10e" >10e5bloc2mmenc25c#L662"8id="L672"11e6ass="li11e2 n8me="L852"> 756 10e" >10e6bloc2mmenc25=block_class" cfree_(h"sf=coa href="+code=dev_to_disk" class="sref">dkmfv);
(iefsk * 754 10e" >10e7bloc2mmenc257        struct (h"sfv);
NUfv     >  tnnd__it="block/gen9d7c#L706"9id="L717"1087ass="li10e2 n8me="L852"> 748 10e" >10e8bloc2mmenc25nlikelapacity" clasref">disk =  719
10e" >10e9bloc2mmenc25        tamp" class="tefid_bnew_ptblmae">nferlags &ree_(h"snferlags &aock_code_clar/a>>disk =  753 10e" >10e"bloc2mmenc26        tamp" class="objlass" cfree_(h"s>);
disk) == 0 ||
 641 10e" >10e"bloc2mmenc26f="L687"tamp" class="create t class="sref">NUfv);
 752 10e" >10e2bloc2mmenc262="L687"tamp" class="24"8id="L724"1124ass="li11e2 n8me="L862"> 663 10e" >10e3bloc2mmenc26         struct >disk = d     >  tnnd__it="block/gen9d7c#L16"9id="L726"1123ass="li11e2 _nex 2"> 754 10e" >10e4bloc2mmenc264        struct disk = <_expand>NUev =l/a>( cplacet(expand>NUevass="sgref">disk
=  685 10e" >10e5bloc2mmenc265        struct disks">flags &ree_(h"ss"sge=s+code=block_code_clar/a>>disk =  756 10e" >10e6bloc2mmenc266        struct );
disk) == 0 ||
 657 10e" >10e7bloc2mmenc267        struct NUfv);
 728
10e" >10e8bloc2mmenc26           =NULL" cla24"8id="L724"1124ass="li11e2 n8me="L832"> 678 10e" >10e9bloc2roe=p26        tamp" class="lar/a>>disk = partsk34 *"ata[=gendisk" cla0]sk"ode_clar/a>>disk =  6      }10e" >10e""blo2k/gen27c#L671"8id="L691"1031ass="li10e2 n8me="L862"> 701
10e" >10ef (!<2 href27f="L687"tamp" class="op-level hre( 6>paric 10e" >10e2 (!<2 href27ate top-level  *bl"block/genoooooooooooooooo* set_capacity() and get_capacity() currck/ly don't u *occ#L715"9id="L715"114lass="li11e2 n8me="L862"> 623 10e" >10ent ING:bl"oooooooooooooooo* seqcounter15"en9ad/upd collockth a0 clasnr_sthes. Still nferocc#L715"9id="L715"114lass="li11e2 _nex 2"> 754 10e" >10e4t  685 10e" >10ea hre2="bco27ate top-level  * everies do,       ooooooooo* patch u atioseqencckcountern9d.c#L715"9id="L715"11e9ass="li11e2 n8me="L852"> 756 10e" >10e6t  6}p>))) 10e" >10e"bloc2/gen727ate top-level  * Th  output                 * TODO: Ide=sty set_capacity() and get_capacity() should b*occ#L715"9id="L715"114lass="li11e2 n8me="L852"> 728
10e" >10eeturn2 6>paric 10e" >10ea hre2="sre27ate top-level  *ef="block/geapacity         *9d.c#L715"9id="L715"114lass="li11e2 n8me="L882"> 677{10e" >10e"    2 (ieseqcount_nferock_code_clar/a>>disk = NUev 681 10e" >10e"bloc2/gen828f="L687"tamp" class="sgkfree_rcu>NUfhd_ree_nferitscexit(iehd_ree_nferock_code_clar/a>>disk =  6      }10e" >10e2 hre2="sre28c#L693"8id="L693"1103ass="li11c2 n8me="L882"> 6     }
10e" >10e     2     28         struct >disk = dminoramp;ree_(h"sminora  =s06"9id="L717"11c7ass="li11c2 _nex 2"> 6>paric 10e" >10e"bloc2/gen9284        struct drand>nferializep/a> *disk) == 0 ||
 685 10e" >10ea hre2="bco285        struct disk = <_/ok/ge =l/a>( cplacet(/ok/geass="sgref">disk) == 0 ||
(a) == 0L712"_9me="="+codeck/gen9d.c06"9id="L717"1111ass="li11e2 n8me="L852"> 756 10e" >10e6 hre2="bco286        struct disk = <_/ok/ge =l/a>( cplacet(/ok/geass="sgref">disk) == 0 ||
(a *(typ"="+codeck/gen9d.c06"9id="L717"1111ass="li11e2 n8me="L852"> 657 10e" >10e7 hre2="sre287        struct NUfvod_rangnferialize *"ata[=genod_rangnferializeass="sgref">disk) ==_/ok/ge =l/a>( cplacet(/ok/geass="sgref">disk) == 0 ||
 756 10e" >10e     2     28           =N24"8id="L724"1124ass="li11e2 n8me="L882"> 7}p>))) 10e" >10e"bloc2/gen828        tamp" class="sref">disk =  6#ref"f>10e" >10e" hre2="bco29roe=p24"8id="L724"1124ass="li11e2 n8me="L892"> 701
10e" >10e"bloc2/gen829.c#L7arl/a>( cleasf"EXPORT_SYMBOdisk=stamp/a> >);
 682
10e" >10e2 hre2="sre29c#L693"8id="L693"1103ass="li11c2 n8me="L892"> 7>paric 10e" >10e     2     293endisk" class9me=">diskdiskget_/a> *(iefsk *disk =  7a>))) {10e" >10e"bloc2/gen92.c#L7085"8id="L685"105lass="li10e2 n8me="L892"> 695 10e" >10ea hre2="bco29="+code=gendisk" classcexit(tblmodulemp;ree_(h"smodulelass="sgref">diskownexitscexit(ieownextno"06"9id="L717"1111ass="li11e2 n8me="L852"> 756 10e" >10e6 hre2="bco29ut_part" classk" class9me=">diskdiskkobjitscp24d.c#L715kobjtno"06"9id="L717"1111ass="li11e2 n8me="L852"> 687 10e" >10e7"blo2k/gen29c#L698"7id="L698"10e8ass="li10e2 n8me="L872"> 648 10e" >10e"bloc2/gen829nlikelapacity" cld_bnew_ptblmae"> =  6      }10e" >10e9"blo2"ssiz29        tamp" class=" class="sref">NUfv);
 6      }11cla>110""blo3k/gen30        tamp"sgref">diskownexitscexit(ieownextno" _parl/a>( cleasf"ur_na href="+c+code=partno" class="sre0>disk(a 701
11c" >110f (!<3 href301likelapacity" clsgref">diskownexitscexit(ieownextno" ode_code_c d_bnew_ptblmae">try_module_tat(typ"="+c/ry_module_tatass="sgref">diskownexitscexit(ieownextno"7)3"8id="L693"1127ass="li11e3 n8me="L893"> 682
11c" >110"bloc3/gen8302="L687"tamp" class=" class="sref">NUfv);
 7>paric 10e" >10e     3     30ut_part" clasarl/a>( cleasf"kobjitscp24d.c#L715kobjtno"sk" class="sref">dkobjecl_tat(typ"="+ckobjecl_tatock_code_clar/a>>disk = <_/ok/ge =l/a>( cplacet(/ok/geass="sgref">disk) == 0 ||
 7a>))) {11c" >11c4    3     3 tamp" class="" clsgref">diskkobjitscp24d.c#L715kobjtno"skk" class="sref">d);
 695 11c" >110a hre3="bco305        struct diskmodule_puritscexit(iemodule_purass="sgref">diskownexitscexit(ieownextno"706"9id="L717"1111ass="li11e3 68me="L893"> 756 10e" >10e6 hre3="bco306        struct NUfv);
 687 10e" >10e7"blo3="+co307        stru24"8id="L724"1124ass="li11e3 n8me="L893"> 648 11c" >11c8    3     30ommencreate t class="sref">NUfvkobjitscp24d.c#L715kobjtno"06"9id="L717"1111ass="li11e3 98me="L893"> 6      }10e" >10e9"blo3     30c#L660"8id="L660"109lass="li10e3 n9me="L913"> 720 11e" >111" hre3="bco31roe=p24"8id="L724"1124ass="li11e3 n9me="L913"> 701
11e" >111="blo3k/gen31c#L662"8id="L672"11e2ass="li11e3 n9me="L913"> 652 11e" >1112uct 3a+cod3=gendiarl/a>( cleasf"EXPORT_SYMBOdiskget_/a> * 6     }
11e" >111 694 11e" >1114="bl3ck/ge314"+colass=s="sre0>diskut_/a> *(iefsk *disk =  695 11e" >1115bloc3/gen831="+co85"8id="L685"105lass="li10e3 68me="L893"> 756 11e" >1116"blo3"ssiz316amp" class="" clsgref">disk =  717 11e" >111="blo3k/gen317        struct NUfvkobjecl_puritscexit(iekobjecl_purock_code_clar/a>>disk = <_/ok/ge =l/a>( cplacet(/ok/geass="sgref">disk) == 0 ||
 6      }11e" >111truct3 719
11e" >111"bloc3/gen831c#L660"8id="L660"109lass="li10e3 n9me="L923"> 6 if (!<11e" >1120    3     32ate tosref">NUfvEXPORT_SYMBOdisk>ut_/a> * 701
11e" >112     3  6>paric 11e" >112eturn3disk _ro_ump" ritscexit(iesetp/a> _ro_ump" rass="sk" classcexit(iefsk *diskg  tnnd__it="blocgd"L71="lass=""sref">partskrk * 683 11e" >112="blo3k/gen32=bloc85"8id="L685"105lass="li10e3 n9me="L913"> 7a>))) {11e" >112"bloc3/gen932tamp" class="lass=ara712"_refnnd_mp" ritscexit(iemp" rass=[]sk"snot;bdi" /a>  695 11e" >1125"blo3"ssiz325        strulass=">na712"_refnnd_env> =l/a>(aass=[]sk"{=ara712"_refnnd_mp" ritscexit(iemp" rass=="sgref">NUfv);
 636
11e" >1126a hr3f="sp32c#L727"9id="L727"10e7ass="li10e3 n9me="L923"> 717 11e" >11e7    3     327amp" class="" cld_bnew_ptblmae">rk * mp" ritscexit(iemp" rass=[8]sk"snot;bdi" /a>  739 11e" >1129turn3NUfvkobjecl_ump" r_envitscexit(iekobjecl_ump" r_envock_code_clar/a>>disk = <_/ok/ge =l/a>( cplacet(/ok/geass="sgref">diskg  tnnd__it="blocgd"L717 class="sre0>diskNUfvKOBJ_CHANGEitscp24d.c#L715KOBJ_CHANGEtno"="sgref">NUfvenv> =l/a>(aass=706"9id="L717"1111ass="li11e3 n8me="L833"> 680 11e" >113"="bl3ck/ge33roe=p24"8id="L724"1124ass="li11e3 n8me="L833"> 641 11e" >113"bloc3/gen833c#L662"8id="L672"11e2ass="li11e3 n9me="L923"> 722 11e" >113"bloc3ifdef332="L6lass=s="sre0>disk *(ief+codecm/a> *diskb/ge =l/a>( cplacetb/geass=="lass=""sref">partskflagty(a 723 11e" >11e3bloc3mmenc33=bloc85"8id="L685"105lass="li10e3 n9me="L913"> 7      }11e" >11e4bloc3mmenc334        strusgref">diskb/ge =l/a>( cplacetb/geass= class="sre0>disk *"ata[=genbdmolicytno"sk" class="sref">dflagty(a 755
11e" >11e5bloc3mmenc335    24"8id="L724"1124ass="li11e3 n9me="L923"> 7>paric 11e" >11e6bloc3mmenc33c#L727"9id="L727"10e7ass="li10e3 n9me="L923"> 677{11e" >11e7bloc3mmenc337    osref">NUfvEXPORT_SYMBOdisksatp/d_rangrk * 638 11e" >11e8bloc3mmenc33     6"9id="L717"1111ass="li11e3 98me="L893"> 719
11e" >11e9bloc3mmenc33     lass=s="sre0>disk _roitscexit(iesetp/a> _roass="sk" classcexit(iefsk *disk = partskflagty(a 720 11e" >114f ( 721 11e" >11e"bloc3k/gen34f="L687"tamp"sk" classcexit(tblmicod_range_s3 =l/a>( cplacet(_range_s3="L68s="sre0>disk 742 11e" >1142 (!<3 href34="+code=NULL"sk" classcexit(iefhd_sk" clitscp24d.c#L715hd_sk" cllass="sgg_mae">NUev *"ata[=gendisk" cl16"9id="L726"1119ass="li11e3 n8me="L833"> 743 11e" >11e     3     34ut_pa6"9id="L717"1111ass="li11e3r_nex 3 3k/gen34tamp" class="" clsgref">disk = NUevpolicy*dflagty(a 755
10e" >10etruct3disksatp/a> _ro_ump" ritscexit(iesetp/a> _ro_ump" rass="sgref">disk = dflagty(a 7>paric 10e" >10e"bloc3/gen9346        struct disk = NUevpolicy*dflagty(a 677{10e" >10ea hre3="+co347        stru24"8id="L724"1124ass="li11e3 n8me="L843"> 678 10e" >10e"bloc3/gen834     6"9id="L717"1111ass="li11e3 n8me="L823"> 678 10e" >10ea hre3="sre34        tamp""sref">NUfv(_range_s3_nferitscexit(ie(_range_s3_nferock_code_clar/a>>diskpr_exitscp24d.c#L715"9id="L71=" class="sref">d = dDISK_PITER_INCL_EMPTYa href="+code=dDISK_PITER_INCL_EMPTYc#L7716"9id="L726"1119ass="li11e3 n8me="L853"> 678 10e" >10e"    3     35        tamp"wh" c ("sgref">disk *"ata[=gendisk" cl _parl/a>( cleasf"ur_ne_range_s3_nbl"itscexit(ief=cod_range_s3_nbl"ock_code_clar/a>>diskpr_exitscp24d.c#L715"9id="L71)7)3"8id="L693"1127ass="li11e3 n8me="L843"> 721 10e" >10e     3 olicytno"sk" class="sref">dflagty(a 682
10e" >10e2    3     352       tamp""sref">NUfv(_range_s3_exeritscexit(ief=cod_range_s3_exerock_code_clar/a>>disker_exitscp24d.c#L715"9id="L71)16"9id="L726"1122ass="li11e3 n8me="L833"> 753 10e" >10e="blo3k/gen35.c#L724"8id="L724"1124ass="li11e3 _nex 3"> 754 10e" >10e"bloc3/gen935c#L705"9id="L705"11e5ass="li11e3 n8me="L833"> 685 10e" >10e5bloc3mmenc35c#L66osref">NUfvEXPORT_SYMBOdisksatp/a> _roitscexit(iesetp/a> _roass=)16"9id="L726"1122ass="li11e3 n9me="L923"> 756 10e" >10e6bloc3mmenc35c#L727"9id="L727"10e7ass="li10e3 n8me="L853"> 754 10e" >10e7bloc3mmenc357    lass=""sref">partskb/gemr > _only*(ief+codecm/a> *diskb/ge =l/a>( cplacetb/geass=)3"8id="L693"1127ass="li11e3 n8me="L843"> 748 10e" >10e8bloc3mmenc35nlike85"8id="L685"105lass="li10e3 n8me="L833"> 719
10e" >10e9bloc3mmenc35        tamp"" cld_bnew_ptblmae">b/ge =l/a>( cplacetb/geass=)3"8id="L693"1127ass="li11e3 n8me="L863"> 753 10e" >10e"bloc3mmenc36        tamp" class="n9d.c#L708"9id="L718"1097ass="li10e3 n8me="L863"> 641 10e" >10e"bloc3mmenc36f="L687"tamp" class="sref">NUfvb/ge =l/a>( cplacetb/geass= class="sre0>disk *"ata[=genbdmolicytno"08"9id="L718"1097ass="li10e3 n8me="L843"> 752 10e" >10e2bloc3mmenc362="L624"8id="L724"1124ass="li11e3 n8me="L863"> 663 10e" >10e3bloc3mmenc36ut_pa6"9id="L717"1111ass="li11e3 _nex 3"> 754 10e" >10e4bloc3mmenc364"+co"sref">NUfvEXPORT_SYMBOdisks/gemr > _only* 685 10e" >10e5bloc3mmenc36c#L662"8id="L672"11e6ass="li11e3 n8me="L853"> 756 10e" >10e6bloc3mmenc366    lass=""sref">partskinvalid co_th a bunc*(iefsk *disk = partsk34 * 657 10e" >10e7bloc3mmenc36.c#L748"8id="L748"1118ass="li11e3 n8me="L853"> 728
10e" >10e8bloc3mmenc36           =Nlass=""sref">partskreity(a 678 10e" >10e9bloc3roe=p36        tamp"sk" classcexit(ief+codecm/a> *diskb/ge =l/a>( cplacetb/geass=sk" class="sref">dbdget_/a> *disk = d34 * 6      }10e" >10e""blo3k/gen370       tamp"" cl_bnew_ptblmae">b/ge =l/a>( cplacetb/geass=)685"8id="L685"105lass="li10e3 n8me="L863"> 701
10e" >10ef (!<3 href37f="L687"tamp" class="oclass="sref">dfsync_b/ge =l/a>( cplacetfsync_b/geass="sgref">disks/ge =l/a>( cplacetb/geass=)16"9id="L726"1119ass="li11e3 n8me="L843"> 6>paric 10e" >10e2 (!<3 href372="L687"tamp" class="=""sref">partskreity(apartsk__nfvalid co_m/a> *disks/ge =l/a>( cplacetb/geass==" class="sref">dk" *(typ"="+c/" *ass=)16"9id="L726"1119ass="li11e3 n8me="L863"> 623 10e" >10ent >diskbdpuritscexit(iebdpurass="sgref">disks/ge =l/a>( cplacetb/geass=)16"9id="L726"1119ass="li11e3 _nex 3"> 754 10e" >10e4t  685 10e" >10ea hre3="bco375        stru class="sref">NUfvreity(a 756 10e" >10e6t  6}p>))) 10e" >10e"bloc3/gen737c#L698"7id="L698"10e8ass="li10e3 n8me="L853"> 728
10e" >10eeturn3NUfvEXPORT_SYMBOdiskinvalid co_th a bunc* 6>paric 10e" >10ea hre3="sre37c#L660"8id="L660"109lass="li10e3 n8me="L883"> 677{10e" >10e"    3 ( 681 10e" >10e"bloc3/gen838f="L6op-level  *ef="block/ge* Dv_t mp" ts - monitor dv_t mp" ts like mediaulasnge and ejeclu cquest9d.c#L715"9id="L715"11e9ass="li11e3 n8me="L883"> 6      }10e" >10e2 hre3="sre38ate top-level  *bl"block/gen*9d.c#L715"9id="L715"114lass="li11e3 n8me="L883"> 6     }
10e" >10e     3     383endisk" class9me=">disk(ep" tsitscexit(ief=codep" ts     85"8id="L685"105lass="li10e3 _nex 3"> 6>paric 10e" >10e"bloc3/gen9384        strusk" class9me=">disk  t        tamp""sref">NUfv);
 685 10e" >10ea hre3="bco38="+code=gendisk" classcexit(tblsk *disk =  756 10e" >10e6 hre3="bco38=block_class" cfree_(h"sspincodecritscexit(iespincodecr        struct  657 10e" >10e7 hre3="sre38c#L698"7id="L698"10e8ass="li10e3 n8me="L853"> 756 10e" >10e     3     38           =Nsk" classcexit(tblmutex t(ief+codecmutex t( 7}p>))) 10e" >10e"bloc3/gen838        tamp"lasssssssssssssssssssssssscexit(ief+code t( 6#ref"f>10e" >10e" hre3="bco390       tamp"unsigned1lasssssssssssss class="sref">d3amp"ngty(a( y seassouto*9d.c#L715"9id="L715"114lass="li11e3 n8me="L883"> 701
10e" >10e"bloc3/gen8391       tamp"unsigned1lasssssssssssss class="sref">dclear"ngty(a( 682
10e" >10e2 hre3="sre39c#L693"8id="L693"1103ass="li11c3 n8me="L893"> 7>paric 10e" >10e     3     39         strulotiossssssssssssssssssssscexit(iefpoll_msecamp;ree_(h"snoll_msecao_di;ruct lp-level hre( 7a>))) {10e" >10e"bloc3/gen9394        strusk" class9me=">disk(disk( 695 10e" >10ea hre3="bco39="+co690"8id="L690"1131ass="li11e3 n8me="L853"> 756 10e" >10e6 hre3="bco39c#L727"9id="L727"10e7ass="li10e3 n8me="L853"> 687 10e" >10e7"blo3k/gen39c#L69iter" copefatlass=">na712"_refnnd_f=codep" ts_sk"sitscexit(ief=codep" ts_sk"s#L69[]sk"{7"9id="L727"10e7ass="li10e3 n8me="L853"> 648 10e" >10e"bloc3/gen839nlikelapacity[sgref">diskilog2itscexit(ieilog2ass="sgref">diskDISK_EVENT_MEDIA_CHANGEitscp24d.c#L715DISK_EVENT_MEDIA_CHANGEass=)]lapacityk"snot;bdi" /a>  6      }10e" >10e9"blo3"ssiz39        tamp"[sgref">diskilog2itscexit(ieilog2ass="sgref">diskDISK_EVENT_EJECT_REQUESTitscp24d.c#L715DISK_EVENT_EJECT_REQUESTass=)]lapacitk"snot;bdi" /a>  6      }11cla>110""blo4k/gen40     690"8id="L690"1131ass="li11e4 n8me="L894"> 701
11c" >110f (!<4 href40c#L662"8id="L672"11e2ass="li11e4 n8me="L894"> 682
11c" >110"bloc4/gen8402oe=piter" class=">na712"_refnnd_f=coduep" tsitscexit(ief=coduep" ts    []sk"{7"9id="L727"10e7ass="li10e4a38me="L894"> 7>paric 10e" >10e     4     40ut_part" clas[sgref">diskilog2itscexit(ieilog2ass="sgref">diskDISK_EVENT_MEDIA_CHANGEitscp24d.c#L715DISK_EVENT_MEDIA_CHANGEass=)]lapacityk"snot;bdi" /a>  7a>))) {10e" >10e"bloc4     4 tamp" class="[sgref">diskilog2itscexit(ieilog2ass="sgref">diskDISK_EVENT_EJECT_REQUESTitscp24d.c#L715DISK_EVENT_EJECT_REQUESTass=)]lapacitk"snot;bdi" /a>  695 10e" >10ea hre4="bco40="+co690"8id="L690"1131ass="li11e4 68me="L894"> 756 10e" >10e6 hre4="bco40c#L727"9id="L727"10e7ass="li10e4a78me="L894"> 687 10e" >10e7"blo4="+co40ate top-level  * Th  outputef=list of all f=codep" tsn*9d.c#L715"9id="L715"114lass="li11e4 n8me="L894"> 648 11c" >11c8    4     40ommeniter" csgref">diskDEFINE_MUTEXitscp24d.c#L715DEFINE_MUTEXass="sgref">disk =  6      }10e" >10e9"blo4     40c#L66iter" csgref">diskLIST_HEAD tdisk = (ief=codep" ts    )16"9id="L726"1119ass="li11e4 n9me="L914"> 720 11e" >111" hre4="bco41c#L671"8id="L691"1031ass="li10e4 n9me="L914"> 701
11e" >111="blo4k/gen41f="L6op-level  *ef="block/gef=f=cable=in-kernel nollatioby defaulto*9d.c#L715"9id="L715"114lass="li11e4 n9me="L914"> 652 11e" >1112uct 4a+cod412oe=piter" cunsigned1lotiosgref">disk = (h"s =  6     }
11e" >111 694 11e" >1114="bl4ck/ge414"+coiter" cunsigned1lotiosgref">disk = (a(iefsk *disk =  695 11e" >1115bloc4/gen841="+co85"8id="L685"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk" class9me=">disk(ep" tsitscexit(ief=codep" ts     ">na712"_refnnd_ee =l/a>( cplacetgeass=sk" class="sref">d =  717 11e" >111="blo4k/gen417        strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatno"sk"708"9id="L718"1097ass="li10e4 n8me="L894"> 6      }11e" >111truct4 719
11e" >111"bloc4/gen841        tamp""p-level hre( 6 if (!<11e" >1120    4     42     op-level hre( *-specif" cpoll=interval is set, alwaysouse it.  Ifd.c#L715"9id="L715"114lass="li11e4 n9me="L914"> 701
11e" >112     4  6>paric 11e" >112eturn4 683 11e" >112="blo4k/gen42ate top-level  * ING:bl"oooooooo*9d.c#L715"9id="L715"114lass="li11e4 n9me="L914"> 7a>))) {11e" >112"bloc4/gen942tamp" class="" clsgref">diskee =l/a>( cplacetgeass= class="sre0>disk(h"snoll_msecao_di clask"723"9id="L723"107lass="li10e4 n9me="L914"> 695 11e" >1125"blo4"ssiz425        struct diskintv_msecamp;ree_(h"sintv_msecatno"sk"sgref">diskee =l/a>( cplacetgeass= class="sre0>disk(h"snoll_msecao_di08"9id="L718"1097ass="li10e4 n9me="L924"> 636
11e" >1126a hr4f="sp42ut_part" claselse i clsgref">disk = (ieep" ts     ode_c ~sgref">disk = (ieasync(ep" tso_di23"9id="L723"107lass="li10e4 n9me="L924"> 717 11e" >11e7    4     427        struct NUfvintv_msecamp;ree_(h"sintv_msecatno"sk"sgref">disk = (h"s =  739 11e" >1129turn4diskmseca(/okjiffieity(adiskintv_msecamp;ree_(h"sintv_msecatno")16"9id="L726"1119ass="li11e4 n8me="L834"> 680 11e" >113"="bl4ck/ge43roe=p24"8id="L724"1124ass="li11e4 n8me="L834"> 641 11e" >113"bloc4/gen843c#L662"8id="L672"11e2ass="li11e4 n9me="L924"> 722 11e" >113"bloc4ifdef43ate top-level  *bl"block/ge/*fd.c#L715"9id="L715"114lass="li11e4 n8me="L834"> 723 11e" >11e3bloc4mmenc43ate top-level  * ING:bl"* f=cod+codecmp" ts - +code and flush dv_t mp" t chedeatid.c#L715"9id="L715"114lass="li11e4 n9me="L914"> 7      }11e" >11e4bloc4mmenc43ate top-level  * aggregate  * @dv_t: dv_t to +code mp" ts ford.c#L715"9id="L715"114lass="li11e4 n9me="L914"> 755
11e" >11e5bloc4mmenc43ate top-level  * everies do,fd.c#L715"9id="L715"114lass="li11e4 n9me="L924"> 7>paric 11e" >11e6bloc4mmenc43ate top-level  *bl"block/gen* On" class=from lois=funcbunc, itois=guaranteed15hat mp" t chedeatid.c#L715"9id="L715"114lass="li11e4 n9me="L924"> 677{11e" >11e7bloc4mmenc43ate top-level  * Th  output *oise't in=progress and won't happencuntilcun5"114ed1byd.c#L715"9id="L715"114lass="li11e4 n8me="L894"> 638 11e" >11e8bloc4mmenc43ate top-level  * extra field* f=codun5"114cmp" ts().  Ep" ts=bcodeatiois=counted and lock ctuald.c#L715"9id="L715"114lass="li11e4 98me="L894"> 719
11e" >11e9bloc4mmenc43ate top-level  *ef="block/ge*cun5"114atiohappens after15ockmatchationumber1ofcun5"114s are done9d.c#L715"9id="L715"11e9ass="li11e4 n8me="L844"> 720 11e" >114f (( 721 11e" >11e"bloc4k/gen44f="L6op-level  *ef="block/ge* Nocolloat lois=intenbunc=sty does not +code mp" t chedeati=fromd.c#L715"9id="L715"114lass="li11e4 n9me="L924"> 742 11e" >1142 (!<4 href44ate top-level  *bl"block/gen* f=codclearcmp" ts().d.c#L715"9id="L715"114lass="li11e4 n8me="L834"> 743 11e" >11e     4     44ate top-level  * ING:bl"*d.c#L715"9id="L715"114lass="li11e4 n9me="L914 4k/gen44ate top-level  * aggregate  *  742+TOitois=guaranteed15hat mp" t chedeatid.c#L715"9id="L715"114lass="li11e4 n9me="L924"> 677{11e" >11e7bloc4mmenc43ate top-level  * Th  output *oise't in=progress and hat mp" t chedeatid.c#L715"*bl"block/di=" class="sref">dflagty4/a>(a44, itois=guaranteed15hat mp" t Might sleepn8me="L837"> 4k/gen44ate top-level  ="li11e4 ncy*(h"snoll_msecao_di clask"e="L823"> 478 10e" >10ea hre3="s4e34  4     tss=""sref">partskflav_t: dv_t to +cod9 11e" >1129turndv_t to +codloc4/gen841="+co85"8id="L685"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk" class9me=">disk(ep" eritscexit4/a>(ie(_range_s3_nfer4ck_co44 n8me="L863"> 753 10e" >10e"4#L715"9id=4L71=" class="sref">d =  ass="sgref">disk =  717 11e" >111="blo4k/gen417        strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatno"sk"708"9id="L718"1097ass="li10e4 n8me="L894"> 6  range_s3_n4l"ock_code_clar/a>>diskpr_e4514lass="li11e3 n8me="Le4 98me="L894"> 719diskownexodee1097ass="li10e4 n8me="L894"> 6  ri11e4 n9meflagty(a10e2 hre3="sranceck/gen9d7c#L16"9rancec1097ass="li10e4 n8me="L894"> 6  r    44ate L71)16"9id="L726"1122ass=4li11e45di;ruct lp-level hre( 685 40e" >10e5bloc3mmenc35c#L64osref45 /a> disk4atp/a45e2 n8me="L872"> 685 6  r*bl"block/726"1122ass="li11e3 n9me=4L923"45lasscexit(iefsk * 10e" >terval is set, alwaysouse it.  Ifd.c#L715"9id="L715"114la+codecm/a>4*lass="sgref">diskb/g4 =l/a4510eeturn2 4k/gen44ate top-level loc3mmenc34        tamp" class="n9d.4#L70845unt_nferitscexit(ieseqcount_nfer p;ree_(h"snoll_msecao_di clask""sref">NUf4b/ge =l/a>( cplacetb/4eass=46k(ieowne"L715_0       tamp"unsign"L715_0   loc4/3"> 754 10e" >10aselse i clsgref">disk = 4licyt46" >11e3bloc4mmenc43ate top-level> 754 40e" >10e4bloc3mmenc364"+c4"sref46n8me="L833"> 753 10e" >1s="l_0   _irqsavcode=gendisk" cls="l_0   _irqsavcloc4/3"> 754 10e" >10aselse i clsgref">disk = diskownexodee10972"11e2ass="li11e4 n9me="L924"= 685 4YMBOdisk4/gemr46(/ok/geass="sgref">disk)ranceck/gen9d7c#L16"9rancec1097   "li10e3 n8me="L8o"sk"708"9id="L718"1097/a> = dflagty(a 754 10e" >10aselse i clsgref">disk = diskownexodee10972"11e2ass="li11e4 n9me="L924"=*bl"block/e=sinvalid co_th a buncas4="sk"4classcexit(iefsk *disk 4 kobjecl_puritscexit(iekobjranceck/gen9d7c#L16"9rancec1097 class9me=">disk(ep" a _groreit4o"sk"708"9id="L718"1097as4="li1468"9id="L718"1097ass="li10e4 n8me="L8rancec_li11e3 n8me=_sgrek/gen9d7c#L16"9rancec_li11e3 n8me=_sgreloc4/3"> 754 10e" >10">diskintv_msecamp;ree_(h"sintv_msecatno"sk"708"9id="L718"1097(h"sintv_msecatne6 hre3="bco39c#L727"9id="L722"11e2ass="li11e4 n9me="L924"=cplacetb/46        tamp"sk" classce4itdiskintv_msecamp;ree_dbdget_/a> * 754 10e" >10aselse i clsgref">disk =  6>47" >11e3bloc4mmenc43ate top-leveld co_m/a> 4ass="sgref">disks/ge 4l/a>(47nd__it="blocgd"L71="lass=""sref"__ock/ge*cun5"114atio tamp"lasssssss__ock/ge*cun5"114atioloc4/gen841="+co85"8id="L685"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk"+c+code=partno" c9oock/gen9d7c#L16"99ooc"L717" >10e2 hre3="srs="l_nowk/gen9d7c#L16"9rs="l_now1097 class9me=">disk(ep" "1119ass="4i11e3 _nex 3"> 754 695 10e" >10ea hre3="bco39="ss=08"9id="L718"1097ass="li10e4 78me="L894"> 717 11e" >111="blo4k/gen417        strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatno"sk"708"9id="L718"1097ass="li10e4 n8me="L894"> 6   3 n8me="Le4 98me="L894"> 719<#L663"bloc4/gen843c#L661097ass="li10e4 n8me="L894"> 6   "sge=stam40e" >10eeturn33 n8me="Le4 98me="L894"> 719diskownexodee1097ass="li10e4 n8me="L894"> 6  ck/gXPORT_4YMBOdisk4nvali4 co_th a bunc* 754 10e" >10aselse i clsgref">disk = diskownexodee10972"11e2ass="li11e4 n9me="L924"15"114lass4"li11e3 n8me="L883"> 681<4a> 104" >10e"bloc3/gen838f="L6op-level4 *ef="bloc4/ge* Dv_t mp" ts - monito4 dv_t48f">dfsync_b/ge =l/a>( cplacetfsyWARN_ON_ONC0e" >10e"bloc4  WARN_ON_ONC0 n8me="L834"> 641 = e class9me=">disk(ep" e9ass="li14e3 n8me="L883"> 6      }14e" >148ric 10e" >10e2 (!<3 hgo     6  s9me=">dis4(ep" tsitscexit(10e"bl4c3/gen9384        strusk"4class48 /a>  641 = (a4hrlp-level hre( 685 6  s((iefsk * 10e" >terval is set, alwaysouse it.  Ifd.c#L715"9id="L715"114la_haft="blo4utex        struct 4810eeturn211e6bloc4mmenc43ate top-level ecmutexo_d4;ructlp-level hre( 4k/gen44ate top-level t +codeati4deptho*9d.c#L715"9id="L714"114l48unt_nferitscexit(ieseqcount_nfer p;ree_(h"snoll_msecao_di clask"" ts=alr >4y seassouto*9d.c#L715"9id4"L71549k(ieowne#L663"bloc4/gen843c#L661097 6"9id="L717"1111ass="li11e4 923"107lass="li10e4 n9me="L914"> 695 11e" >1115bloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk" ass="li10e4 n8me="L894"> 6  p" ts=beat4ocleared1*9d.c#L715"9id="4715"149="L717"1111as10e" hre3="bco3    time1_slacmode=gendisk" cls   time1_slacmloc4/3"> 754 10e" >10aselse i clsgref">disk =  6  p9me=">dis4_msecamp;ree_(h"snoll4mseca492">dfsync_b/ge =l/a>( cplacetfsyrs="l_nowk/gen9d7c#L16"9rs="l_now1097 class9me=">disk(ep" =interval,4-1 for defaulto*9d.c#L71549id="4715"114lass="l7"1111as10e" hre3="bco3queue_"+co690"8id="L690"1131ass="queue_"+co690"8id=loc4//a> 11e" >1116"system_nrt_freezs_df_wqode=gendisk" clsystem_nrt_freezs_df_wqe"" +c3"> 754 10e" >10aselse i clsgref">disk =  6  pity(a4d="L726"1119ass="li11e3 n4me="L493"> 695 1disk10e7"blo3k/gen39c#L49iter49_msecao_di08"9id="L718"1097ass="li10queue_"+co690"8id="L690"1131ass="queue_"+co690"8id=loc4//a> 11e" >1116"system_nrt_freezs_df_wqode=gendisk" clsystem_nrt_freezs_df_wqe"" +c3"> 754 10e" >10aselse i clsgref">disk =  6  p"16"9id="4tscexit(ief=codep" ts4sk"s#469[]sk  6  phaft="blo453"> 648 10e" >10e"bl4c3/ge497"L717"1111as10e" hre3="bco3 ="l_un0   _irqmp"li11ode=gendisk" cls="l_un0   _irqmp"li11loc4/3"> 754 10e" >10aselse i clsgref">disk = diskownexodee10972"11e2ass="li11e4 n9me="L924"T_MEDIA_CH4NGEass=)]lapacityk"snot;b4i&quo49NUfvEXPORT_SYMBO10e"bloc3/gen838f="L6op-level5"> 682511c" >110"bloc4/gen8402oe5piter50p" ts like mediaulasnge and euse it.  Ifd.c#L715"9id="L715"114l5itscexit(ief=coduep" ts    []sk"57"9id50href44ate top-level  *bl"blockock/ge*cun5"114atio -="L844">15"9id="L715"114lass="li11e4 n9me="L914"> 755
11e5> 7>paric 50e" >10e     4     40ut_p5rt" c50"9id="L715"114lass="li11e4 n9m"li11e4 n9me="L"L844">17>paric 11e" >11e6bloc4mmenc43ate top-level5T_MEDIA_CH5NGEass=)]lapacityk"snot;b5i&quo505hat mp" t chedeatid.c#L715"9id="L715"114lass="li11e4 n9me="L95NT_EJECT_R5QUESTass=)]lapacitk"snot;5di&qu50vel  * Th  output *oise't Undodv_t: dv_t to +codhappeWhenooooo844">1tionu rea"11s zeross aid="L715"114lass="li11e4 n9me="L95N5_EJECT_R5Q0e" >10e7"blo3k/gen39c#L5top-l50, itois=guaranteed15hat mp" t starric7>paricamp;ree_/aaconfiguredn8me="L837"> 4k/gen44ate top-level5odep" tsn*5d.c#L715"9id="L715"114las5="li150c4mmenc43ate top-level  * Th 8me="L837"> 4k/gen44ate top-level5o7ep" tsn*5d3"> 648 10e" >10e"bl5/a>DE5INE_MUTEXitscp24d.c#L715DEFI;t in=progress and hat mp" t chedeatid.c#L71510e     3     383endisk" cla5)16"9id="L526"1119ass="li11e4 n9me="5914">50a4"ssiz44     op-level hre(h"snoll_msecao_di clask5el nollati5by defaulto*9d.c#L715"9id5"L7155114lasss=""sref">partskflav_t: e*cun5"114atio tamp"lasssssssock/ge*cun5"114atioloc4/gen841="+co85"8id="L685"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk" class9me=">disk(ep"5/a> 11e" >5112uct 4a+cod412oe=piter"5cunsi5ned1lo=genbdm56    512">dfsync_b/ge =l/a>( cplacetfsy">diskintv_msecamp;ree_(h"sintv_msecatno"sk"708"9id="L718"1097 class9me=">disk(ep"5/_MEDIA_CH5l_jiffieity(a 11e" >1116"blo4"ssiz41ut_part" classk"+c+code=partno" cfaiskf">diskownexaisk10972"11e2ass="li11e4 n9me="L9245it(ief5k *EXPORT_SYMBO(ief=codep" ts     ">n5712"_51lasscexit(iefsk * 755
11e5"9id="L7155114lass="li11e4 n9me="L925"> 6 514mmenc43ate top-level  *ef="bl"li11e4 n9me="Lss="l ford.c#L717>paric 11e" >11e6bloc4mmenc43ate top-level5p-level hr5( *-51a4"ssiz44     op-level hre@ma11e47>paric   fc#L7e" >11e6bloc4mmenc43ate top-level5ss="li11e45n9me="L914"> 701
11e"5>112 5   4  6>paric 11e" 5112et5rn4112="blo4k/gen42ate5top-l5vel  * ING:bl"oooooooo*9da>@ma11721diskee =l/a>(5cplac5tgeass= class="sre0>disk(ev10e" >10e     3     383endisk" cla5723"9id="L523"107lass="li10e4 n9me="5914">52vel  * Th  output *oise't0e" >10e     3     383endisk" cla57sitscexit5k5h"sno52, itois=guaranteed15hat mp" t in=progress and hat mp" t chedeatid.c#L715 ~sgref">d5sk =  4k/gen44ate top-level5;ree_(5"s = (h"snoll_msecao_di clask5iffieity(ass=""sref">partskflav_t: .c#L7114atio tamp"lasssssssock/g.c#L7114atioloc4/gen841="+co85"8id="L685"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk"+cn8me="L883"> i=" class="sref"ao4"ssiz41ut_part""ao41097 class9me=">disk(ep"5a>(h"sintv5msecatno")16"9id="L726"1159ass=5li11e4=genbdm113"bloc4ifdef43ate 5op-le53k10ea hre3="bco39="ss=08"9id="L718"1097ass="li10e4 78me="L894"> 717 11e" >111="blo4k/gen417        strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatno"sk"708"9id="L718"1097ass="li10e4 n8me="L894"> 6 5715"114las5="li11e4 n8me="L834"> 7235/a> 15e" >11e3bloc4mmenc43ate top-leve5  * IN5:bl"* f=cod+codecmp" ts -5+code532">dfsync_b/ge =l"li10e3 n8me="L8o"sk"708"9id="L718"1097 class9me=">disk(ep"59me="L914"5 7      }11e" >11e4bloc4m5enc435315"114lass="l7"1111asput *oass="li10e4 n8me="L894"> 6 5 >11e5bloc5mmenc43ate top-level  * e5eries53_roitscexit(iesetp/a> _roas5 *bl"block5gen* On" class=from lois=5uncbu53_msecao_di08"i=" class="srefs="l_0   _irqode=gendisk" cls="l_0   _irqloc4/3"> 754 10e" >10aselse i clsgref">disk =  677{11e" 511e7b53657 10e" >10e7 hre3="sreaselse i clsgref">disk = (5L894"> 638 11e" >11e85loc4m537">dfsync_b/ge =l"li10e3 n8me="L8o"sk"708"9id="L718"1097/a> =  719
11e" >51e9bl5385"114lass="l7"1111as  754 10e" >10aselse i clsgref">disk = (h"sintv58me="L844"> 720 11e" 5114f 5395"114lass="l7"1111as  11e" >1116"system_nrt_freezs_df_wqode=gendisk" clsystem_nrt_freezs_df_wqe"" +c3"> 754 10e" >10aselse i clsgref">disk =  6 5 *ef="bloc5/ge* Nocolloat lois=inten5unc=s54kEXPORT_SYMBO 742 11e" >1152 (!<54="L717"1111as10e" hre3="bco3 ="l_un0   _irqode=gendisk" cls="l_un0   _irqloc4/3"> 754 10e" >10aselse i clsgref">disk = ING:bl"*5.c#L754NUfvEXPORT_SYMBO+TOitois=gua5antee5re0="block/gen9d7c#Ls="    mae">54"> 67711e7bloc4mmenc43at5 top-5evel  * Th  output *oise' euse it.  Ifd.c#L715"9id="L715"114l5"*bl"block5di=" class="sref">dflagty5/a>(a54, itois=guaranteed15hat mp" t e="L914 ass="l,bc    ofordput *oiigned1l 4 78me=" it.  Ifd.c#L715"9id="L715"114l5"="li11e4 5cy*(578 10e" >10ea hre3="s5e34  54NE_MUTEXitscp24d.c#L715DEFI;t @ma11e4ma117of47>paric   4lafetchmber1ofc    ted=" it.  Ifd.c#L715"9id="L715"114l5""li11e4 95/a>(ie(_range_s3_nfer5ck_co544mmenc43ate top-level  *ef="b=" it.  Ifd.c#L715"9id="L715"114l5">(h"sintv5L71=" class="sref">d = l"block/gen*21 ass="lmber1ofigned1l 4 78meun5"@"ao410 it.  Ifd.c#L715"9id="L715"114l5range_s3_n5l"ock_code_clar/a>>diskpr_e55  4 1tionun8me="L837"> 4k/gen44ate top-level5ri11e4 n9m5flagty(a 4k/gen44ate top-level5r    44ate5L71)16"9id="L726"1122ass=5li11e55el  * ING:bl"oooooooo*9da>in=progress and hat mp" t chedeatid.c#L715> 685 50e" >10e5bloc3mmenc35c#L65osref55geass= class="sre0>disk 4k/gen44ate top-level5ck/gXPORT_5YMBOdisk5atp/a55vel  * Th  output *oise'tp;ree_(h"snoll_msecao_di clask5r*bl"block5726"1122ass="li11e3 n9me=5L923"55lasscn8me="L883"> i=" class="srefe="L914 756 11e" >1116"blo4"ssiz41ut_part" classk"+cn8me="L883"> i=" class="sref"ao4"ssiz41ut_part""ao41097 class9me=">disk(ep"5f="sge=sb/5emr > _onlyass="sk" class5exit<556575*lass="sgref">diskb/g5 =l/a557">dfsync_b/gity[sg="sgref">disk =  756 11e" >1116"bdope"L718"1097ass=" dope        strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatnfope"L718"1097ass="fope    "11e2ass="li11e4 n9me="L9245 cplacetb/5eass=)3"8id="L693"1127ass5"li1155tthes +codeatio*9d.c#L715"9id="L715"ss=08"9id="L718"1097ass="li10e4 78me="L894"> 717 11e" >111="blo4k/gen417        strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatno"sk"708"9id="L718"1097ass="li10e4 n8me="L894"> 6 5loc3mmenc35        tamp" class="n9d.5#L70859id="L718"1097n8me="L883"> i=" class="srefgen8391       tamp"unsigned1lassssss="li10e4 n8me="L894"> 6 5"sref">NUf5b/ge =l/a>( cplacetb/5eass=5614lass="li11e4 n9me="L914"> 6525="sre0>dis5 754 50e" >10e4bloc3mmenc364"+c5"sref56placetb/geass==" classiosgref">disk = (skDISK_Ed metho  strulotiossssssssssssssssssssscexit5= 685 5YMBOdisk5/gemr5615"114lass="l7"1111ase =l//a> 11e" >1116""ao4"ssiz41ut_part""ao41097e" >11e/a> 11e" >1116"48me="L894"> 7a>))) {10e" >10e"bloc4     4 tamp" class="[sgref">die" >11" >11ssssssssssssssssssssscexit5=k/gXPORT_59id="L726"1122ass="li11e35n8me=56e2 n8me="L872"> 685(h"sintv_msecatnskDISK_Ed"ssiz41ut_part""kDISK_Ed1097e" >11" >11e/a> 11e" >1116"bdope"L718"1097ass=" dope    (h"sintv_msecatnskDISK_Ed"ssiz41ut_part""kDISK_Ed1097//a> 11e" >1116"blo4"ssiz41ut_part" classk"  class9me=">disk(ep"5=*bl"block5e=sinvalid co_th a buncas5="sk"56_msecao_di08"9id="L7111111111834"> 680 11e" >1148me="L894"> 7a>))) {10e" >10e"bloc4     4 tamp" class="[sgref">d1ssssssssssssssssssssscexit5=="sge=sb/5" class="sgref">disk 5 kobjecl_pur11111111834"> 6level hre(EXPORT_SYMBOdiskintv_msecamp;ree_<5=sk" class5"sref">dbdget_/a> *(ieownes="l_0   _irqode=gendisk" cls="l_0   _irqloc4/3"> 754 10e" >10aselse i clsgref">disk =  6>57="L717"1111as10e" hre3="bco3aselse i clsgref">disk =  5ass="sgref">disks/ge 5l/a>(57n8me="L833"> 753 10e" >1s="l_un0   _irqode=gendisk" cls="l_un0   _irqloc4/3"> 754 10e" >10aselse i clsgref">disk =  7545eity(a5a _groreitno"16"9id="L72651119a573"> 695 1nterval is set, alwaysou unityd ts().d.cs"11dudfl"114lass="lts(). aitp<   itp   finish strulotiossssssssssssssssssssscexit5 *bl"block5ate t24"8id="L724"1124ass5"li1157_msecao_di08"i=" class="srefv_t: dv_t to +cod9 11e" >1129turndv_t to +codloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk" "11e2ass="li11e4 n9me="L9245"="sge=sb/50e" >10eeturn3 10e" >10e7 hre3="srequeue_"+co690"8id="L690"1131ass="queue_"+co690"8id=loc4//a> 11e" >1116"system_nrt_freezs_df_wqode=gendisk" clsystem_nrt_freezs_df_wqe"" +c3"> 754 10e" >10aselse i clsgref">disk = 9245" _groreit5YMBOdisk5nvali577"L717"1111as10e" hre3="bco3.c#L71"+co690"8id="L690"1131ass=".c#L71"+co690"8id=loc4/3"> 754 10e" >10aselse i clsgref">disk =  11e" >1116"blo4"ssiz41ut_part" classk"+c+code=partno" cfaiskf">diskownexaisk10972"11e2ass="li11e4 n9me="L924515"114lass5"li11e3 n8me="L883"> 681<5a> 105" >10e"bloc3/gen838f="L6op-level5 *ef="bloc5/ge* Dv_t mp" ts - monito5 dv_t58f">dfsync_b/gscexit(iespincodecr     n,Lfetchofordc    oigned1l 4 78meustrulotiossssssssssssssssssssscexit5e9ass="li15e3 n8me="L883"> 6      }15e" >158="L717"1111as10e" hre3="bco3 ="l_0   _irqode=gendisk" cls="l_0   _irqloc4/3"> 754 10e" >10aselse i clsgref">disk =  753 10e" >1WARN_ON_ONC0e" >10e"bloc4  WARN_ON_ONC0 n8me="L834"> 641 = 11e/a> 11e" >1116""ao4"ssiz41ut_part""ao41097 ;nc_b/gscexit(iespincodecr          byo9id=fn strulotiossssssssssssssssssssscexit5e1119ass="5c3/gen9384        strusk"5class58 /a> disk = 11e/a> 11e" >1116""ao4"ssiz41ut_part""ao41097"11e2ass="li11e4 n9me="L9245sity(a5hrlp-level hre(dflagty(adisk = 11=e7    4     427  "ao4"ssiz41ut_part""ao41097"11e2ass="li11e4 n9me="L9245s*bl"block5lp-level hre( 754 10e" >10aselse i clsgref">disk =  648 11c" >115_haft="blo5utex        struct 587"L717"1111as834"> 680 11e" >11gen8391       tamp"unsigned1lassssss="li10e4 n8me="L894"> 6 5ecmutexo_d5;ructlp-level hre(EXPORT_SYMBO10e"bloc3/gen838f="L6op-level5" ts=alr >5y seassouto*9d.c#L715"9id5"L71559k 6959id=fn"L718"1097ass="li10e4 78me>9id=fnloc4/gen841="+co85"8id="L688me=_sen841"L718"1097ass="8me=_sen841="L894"> 717 11e"6 hre3="bco39c#L7279id="L722"bloc3/gen838f="L6op-level5"9ass="li15ocleared1*9d.c#L715"9id="5715"159ed1lo=genbdmdis5_msecamp;ree_(h"snoll5mseca592">dfsync_b/g0e" >10ea hre3="bco39="+co690"8id="L690"1131ass="li11e3 n8me="L853 11e" >1116"b6 hre3="bco39c#L727"9id="L72f="sp42ut_part" clto1"+co690"8id="L690"1131ass="to1"+co690"8id= n8me="L834"> 641 6 5=interval,5-1 for defaulto*9d.c#L71559id="5715"114lass="lio*9d.c#L715"9id="L715"ss=08"9id="L718"1097ass="li10e4 78me="L894"> 717 11e" >111="blo4k/gen417        strulotiosgrefcontaltor_of93"8id="L693"110ontaltor_ofloc4//a> 11e" >1116"b6 hre3="bco39c#L727"9id="L72,aio*9d.c#L715"9id="L715"ss=08"9id="L718"1097ass="li10e4 78me="L8+c+code=partno" ce6 hre3="bco39c#L727"9id="L722"11e2ass="li11e4 n9me="L9245pity(a5d="L726"1119ass="li11e3 n5me="L593"> 695 10e" >10ea hre3="bco39=5"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk"f="sp42ut_part" claselse i clsgref">disk = 10e7"blo3k/gen39c#L59iter59_msecao_di08"kilog2itscexitnvpmsec=DISK_EJECT_REQUARRAY_SIZ0e" >10e"bloc4  ARRAY_SIZ0loc4//a> 11e" >1116"blo4ilog2ass="sgref">diskDISK_EVENT_MED) + 1A_CHA  Th  outputef=list of all f=5p"16"9id="5tscexit(ief=codep" ts5sk"s#596n8me="L853">3 n8me="L3"> i=" class="srefre39c#L693"8id="L693"1103ass="li11c ="sp42ut_part" claselse i clsgref">disk =  648 10e" >10e"bl5c3/ge597"L717"1111as3 n8me="L3"> i=" class="sref"li10e4 n9me="L924"> 717 11Th  outputef=list of all f=5pcmutexo_d5NGEass=)]lapacityk"snot;b5i&quo598"L717"1111as3 n8me="Le4 98me="L894"> 719<#L663"bloc4/gen843c#L661097ass="li10e4 n8me="L894"> 6 5NT_EJECT_R5QUESTass=)]lapacitk"snot;5di&qu59ecif" cpoll=i3"> i=" class="srefn5="li11e"L718"1097ass="n5="li11eloc4"p-l,aync(ep" tsitsce#3"bloc4/gen843c#1097ass="li10e4 n8me="L894"> 6 6"> 682611c" >110"bloc4/gen8402oe6piter6014lass="li11e4 n9me="L914"> 6526itscexit(ief=coduep" ts    []sk"67"9id60="L717"1111as1cexit(iespincodecr   s="lt4 78meustrulotiossssssssssssssssssssscexit6> 7>paric 60e" >10e     4     40ut_p6rt" c60n8me="L833"> 753 10e" >1"li10e4 n9me="L924"> 717 11e   strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatnfope"L718"1097ass="fope    /a> =  rs="l_"li10eloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk"+c+code=partno" cre39c#L693"8id="L693"1103ass="li11c2"11e2ass="li11e4 n9me="L9246T_MEDIA_CH6NGEass=)]lapacityk"snot;b6i&quo60e0="block/gen9d7c#Ls="    mae">6NT_EJECT_R6QUESTass=)]lapacitk"snot;6di&qu603"> 695 1nterval is set, alwaysou accumulateoigned1l 4 78meufords"11dudflnexttored1aslnecessaryustrulotiossssssssssssssssssssscexit6>5_EJECT_R6Q0e" >10e7"blo3k/gen39c#L6top-l60_msecao_di08"i=" class="srefs="l_0   _irqode=gendisk" cls="l_0   _irqloc4/3"> 754 10e" >10aselse i clsgref">disk =  648 11c" >116o7ep" tsn*6d3"> 648 10e" >10e"bl6/a>DE607"L717"1111as10e" hre3="bco3"li10e4 n9me="L924"> 717 11e" >11=e7    4     427  aselse i clsgref">disk = disk =  717 11Th  outputef=list of all f=6)16"9id="L626"1119ass="li11e4 n9me="6914">60code=dev_to_di=" class="srefo"sk"708"9id="L718"1097/a> = 11=e7    4     427  re39c#L693"8id="L693"1103ass="li11cTh  outputef=list of all f=6el nollati6by defaulto*9d.c#L715"9id6"L7156114lass="li11e4 n9me="L914"> 6526/a> 11e" >6112uct 4a+cod412oe=piter"6cunsi61="L717"1111as10e" hre3="bco3#L663"bloc4/gen843c#L661097 6"9id="L717"1111ass="li11e4 923"107lass="li10e4 n9me="L914"> 695 11e" >1115bloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk" ass="li10e4 n8me="L894"> 6 6d="L718"1067ass="li10e4 n9me="L914">66    612">dfsync_b/ge =l"li10e3 n8me="L8o"sk"708"9id="L718"1097/a> = 11" >11e/a> 11e" >1116"#L663"bloc4/gen843c#L661097 class9me=">disk(ep"6/_MEDIA_CH6l_jiffieity(a 11e" >1116"system_nrt_freezs_df_wqode=gendisk" clsystem_nrt_freezs_df_wqe"" +c3"> 754 10e" >10aselse i clsgref">disk = 1116"#L663"bloc4/gen843c#L661097 ass="li10e4 n8me="L894"> 6 6dT_EJECT_R6k *n6712"_61_msecao_di08"i=" class="srefs="l_un0   _irqode=gendisk" cls="l_un0   _irqloc4/3"> 754 10e" >10aselse i clsgref">disk =  648 11c" >116    }11e" 6111truct4 6 614mmenc43ate top-level  *ef="""""""""* Tell userlfordabngo_new 4 78me.  Only_oooo"114ls list="L3"se it.  Ifd.c#L715"9id="L715"114l6"16"9id="L6( *-61a4"ssiz44     op-level hre(ev/gen*21 701
11e"6>112 6   4 
arcmpr().d.cbgo_never get/repo tede="L"serlforn8me="L837"> 4k/gen44ate top-level6s="li11e4 69me="L914"> 6>paric 11e" 6112et6rn4112="blo4k/gen42ate6top-l622">dfsync_b/g<   sync(ep" tsitsce#3"bloc4/gen843c#1097"p-l1e/a> 11e" >1116"#3"bloc4/gen843c#1097"&lk 11e" >1116"ARRAY_SIZ0e" >10e"bloc4  ARRAY_SIZ0loc4//a> 11e" >1116"blo4ilog2ass="sgref">diskDISK_EVENT_MED)1e/a> 11e" >1116"#3"bloc4/gen843c#1097++ class9me=">disk(ep"6s_MEDIA_CH6lsgref">diskee =l/a>(6cplac6215"114lass="l7"1111ase =l10e" hre3="bco3"li10e4 n9me="L924"> 717 11e" >11  strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatno"i10e4 n9me="L924"> 717 11e" >11 (1"&lk<&lk 11e" >1116"#3"bloc4/gen843c#1097  class9me=">disk(ep"6723"9id="L623"107lass="li10e4 n9me="6914">62e2 n8me="L872"> 685nvpmsec=DISK_EJECT_REQUn5="li11e"L718"1097ass="n5="li11eloc4++] 6"9id="L717"1111ass="llog2ass="sgref">diskDISK_EVENT_MED=DISK_EJECT_REQU#3"bloc4/gen843c#1097]"11e2ass="li11e4 n9me="L92467sitscexit6k6h"sno62lasscexit(iefsk *d6sk = nv"L718"1097ass="kobjectSK_EVEN_>nvloc4/3"> 754 10e" >10a>DISto1"+v"L718"1097ass="a>DISto1"+vloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk" (h"sintv_msecatnkobj"L718"1097ass="kobj"L72,a/a> 11e" >1116"KOBJ))) {10e" >10e"bloc4  KOBJ))) {10"L72,a/a> 11e" >1116"onvpelse i clsgref">nvpmsec2"11e2ass="li11e4 n9me="L9246iffieity(a(h"sintv6msecatno")16"9id="L726"1169ass=62 >10e"bloc3/gen838f="L6op-level6> 722 61e" >113"bloc4ifdef43ate 6op-le63p" ts like mediaulasnge and erulotiossssssssssssssssssssscexit6715"114las6="li11e4 n8me="L834"> 7236/a> 163n411e6bloc4mmenc43ate top-level6  * IN6:bl"* f=cod+codecmp" ts -6+code63el  * ING:bl"oooooooo*9da>i1s /sys/c43ateX/15"rectoryn8me="L837"> 4k/gen44ate top-level69me="L914"6 7      }11e" >11e4bloc4m6enc43635hat mp" t chedeatid.c#L715"9id="L715"114lass="li11e4 n9me="L96 >11e5bloc6mmenc43ate top-level  * e6eries63vel  * Th  output *oise't ="L71s               : list7of4="sgsuppo tede4 78me=" it.  Ifd.c#L715"9id="L715"114l6 *bl"block6gen* On" class=from lois=6uncbu63, itois=guaranteed15hat mp" t 695as9me         : list7of4="L71s which*ran 4ladetect   w/ocamp;ree=" it.  Ifd.c#L715"9id="L715"114l6 ~sgref">d69me="L924"> 677{11e" 611e7b63c4mmenc43ate top-level  * Th l695 11e"msecs    : amp;ree_/cmprval, 0e4 n9s_df, -1: systemadefaulaid="L715"114lass="li11e4 n9me="L96sree_(6L894"> 638 11e" >11e86loc4m63NE_MUTEXitscp24d.c#L715DEFI;tp;ree_(h"snoll_msecao_di clask6="li11e4 96me="L894"> 719
11e" >61e9bl6385"11t="bloci=" class="srefssize_1"L718"1097ass="ssize_1"9id=i=" class="sref__ock/g695showk/gen9d7c#L16"9__ock/g695showloc4/3 n8me="L3"> i=" class="sref"li10e4 n9me="L924"> 717 11,"kilog2itscexit(h"sintv68me="L844"> 720 11e" 6114f 63i11e4=genbdmilog2itscexit&quok<&quok<;ree_ 742 11e" >1162 (!<64="L717"1111as10e" hre3="bco3 size_1"L718"1097ass="ssize_1"9id=i=" class="srefpoe4 n9me="L924"> poe1097"p-l111e2ass="li11e4 n9me="L9246l * IN6top-level  * ING:bl"*6.c#L7642">dfsync_b/ge"> i=" class="sref#3"bloc4/gen843c#1097ass="li10e4 n8me="L894"> 6 6 * aggrega6e  *  742+TOitois=gua6antee6re0="block/gen9d7c#Ls="    mae">64"> 67711e7bloc4mmenc43at6 top-64e2 n8me="L872<   sync(ep" tsitsce#3"bloc4/gen843c#1097"p-l1e/a> 11e" >1116"#3"bloc4/gen843c#1097"&lk 11e" >1116"ARRAY_SIZ0e" >10e"bloc4  ARRAY_SIZ0loc4//a> 11e" >1116"blo4i695str"li10e4 n9me="L914"> 695str"_MED)1e/a> 11e" >1116"#3"bloc4/gen843c#1097++ class9me=">disk(ep"6"*bl"block6di=" class="sref">dflagty6/a>(a64_msecao_di08"9id="L71e =l10e" hre3="bco3"li10e4 n9me="L924"> 717 11e" >11 (1"&lk<&lk 11e" >1116"#3"bloc4/gen843c#1097  HANGEitscp24d.c#L715DISK_EVE6"="li11e4 6cy*kobjecl_pur111111117"1111as10e" hre3="bco3poe4 n9me="L924"> poe1097"+6"9id="L717"1111aspc#Ltf93"8id="L693"11spc#Ltfloc4//a> 11e" >1116"buf93"8id="L693"11bufloc4 +s10e" hre3="bco3poe4 n9me="L924"> poe1097,"9EXitscp24d.cstc#L69>&quok<%s%s&quok<;ree_(678 10e" >10ea hre3="s6e34  648"9id="L718"1097ass="ecl_pur111111117"1111as10e" hre3="bco3delim"L690"1131ass="li1im1097+c+code=partno" celo4i695str"li10e4 n9me="L914"> 695str"_MED=DISK_EJECT_REQU#3"bloc4/gen843c#1097]2"11e2ass="li11e4 n9me="L9246""li11e4 96/a>(ie(_range_s3_nfer6ck_co6485"114lass="l7"1111as7"1111as10e" hre3="bco3delim"L690"1131ass="li1im1097 6"9EXitscp24d.cstc#L69>&quok< &quok<;ree_(h"sintv6L71=" class="sref">d = EXPORT_SYMBO>diskpr_e65f">dfsync_b/ge =l/a>( cplacetfsypoe4 n9me="L924"> poe1097 class9me=">disk(ep"6ri11e4 n9m6flagty(a10e2 (!<3 h10e" hre3="bco3poe4 n9me="L924"> poe1097"+6"9id="L717"1111aspc#Ltf93"8id="L693"11spc#Ltfloc4//a> 11e" >1116"buf93"8id="L693"11bufloc4 +s10e" hre3="bco3poe4 n9me="L924"> poe1097,"9EXitscp24d.cstc#L69>&quok<\n&quok<;ree_dfsync_b/g834"> 680 11e" >11goe4 n9me="L924"> poe1097"11e2ass="li11e4 n9me="L9246r* aggrega60e" >10e5bloc3mmenc35c#L66osref65geass/a>EXPORT_SYMBO 677disk6atp/a65_roitscexit(iesetp/a> _roas6r*bl"block6726"1122ass="li11e3 n9me=6L923"65lassct="bloci=" class="srefssize_1"L718"1097ass="ssize_1"9id=i=" class="srefock/g695showk/gen9d7c#L16"9ock/g695showloc4/0e" >10ea hre3="bco39="+code"L690"1131ass="licode"9id=ilog2itscexit _onlyass="sk" class6exit<65a>kobjecl_pur111111117"1111asssssssss0e" >10ea hre3="bco39="+code_attc#bute"L690"1131ass="licode_attc#bute"9id=ilog2itscexit 11,"kilog2itscexit6*lass="sgref">diskb/g6 =l/a657">dfANGEitscp24d.c#L715DISK_EVE6 cplacetb/6eass=)3"8id="L693"1127ass6"li1165tthes +codeatio*9d.c#L715"9id="L7155"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk"f="sp42ut_part" cllicSto1"lo4"ssiz41ut_part" icSto1"lo4loc4//a> 11e" >1116"bev"L718"1097ass="a+vloc42"11e2ass="li11e4 n9me="L9246r>(h"sintv6        tamp" class="n9d.6#L70865 >10e"bloc3/gen838f="L6op-level6"sref">NUf6b/ge =l/a>( cplacetb/6eass=660">dfsync_b/g834"> 680 11e" >11__ock/g695showk/gen9d7c#L16"9__ock/g695showloc4/ strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatno"i10e4 n9me="L924"> 717 11+c+code=partno" cbuf93"8id="L693"11bufloc4 "11e2ass="li11e4 n9me="L9246="sre0>dis6EXPORT_SYMBO 754 60e" >10e4bloc3mmenc364"+c6"sref66di;ruct lp-level hre( 6YMBOdisk6/gemr6615"11t="bloci=" class="srefssize_1"L718"1097ass="ssize_1"9id=i=" class="srefock/g695as9me>showk/gen9d7c#L16"9ock/g695as9me>showloc4/0e" >10ea hre3="bco39="+code"L690"1131ass="licode"9id=ilog2itscexit 68510ea hre3="bco39="+code_attc#bute"L690"1131ass="licode_attc#bute"9id=ilog2itscexit 11,"kilog2itscexitdisk 6 kobjecl_purio*9d.c#L715"9id="L7155"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk"f="sp42ut_part" cllicSto1"lo4"ssiz41ut_part" icSto1"lo4loc4//a> 11e" >1116"bev"L718"1097ass="a+vloc42"11e2ass="li11e4 n9me="L9246a _groreit6o"sk"708"9id="L718"1097as6="li1668"9id11e2ass="li11e4 n9me="L9246acplacetb/66        tamp"sk" classce6itdfsync_b/g834"> 680 11e" >11__ock/g695showk/gen9d7c#L16"9__ock/g695showloc4/ strulotiosgref">diskintv_msecamp;ree_(h"sintv_msecatnas9me>o"i10e4 n9me="L924"> as9me>o"i10e> 11+c+code=partno" cbuf93"8id="L693"11bufloc4 "11e2ass="li11e4 n9me="L9246=>(h"sintv6"sref">dbdget_/a> *EXPORT_SYMBO 6526"9id="L72661119ass="li11e3 n8me="L846"> 6>67="L71t="bloci=" class="srefssize_1"L718"1097ass="ssize_1"9id=i=" class="srefock/g695 11e"msecs>showk/gen9d7c#L16"9ock/g695 11e"msecs>showloc4/0e" >10ea hre3="bco39="+code"L690"1131ass="licode"9id=ilog2itscexit 6ass="sgref">disks/ge 6l/a>(67placetb/geass==" clas68510ea hre3="bco39="+code_attc#bute"L690"1131ass="licode_attc#bute"9id=ilog2itscexit 11,NGEitscp24d.c#L715DISK_EVE6d 685 6i11e3 _nex 3"> 754ilog2itscexit(a6a _groreitno"16"9id="L72661119a673"> 6ANGEitscp24d.c#L715DISK_EVE6 *bl"block6ate t24"8id="L724"1124ass6"li1167_msecao_di08"io*9d.c#L715"9id="L7155"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk"f="sp42ut_part" cllicSto1"lo4"ssiz41ut_part" icSto1"lo4loc4//a> 11e" >1116"bev"L718"1097ass="a+vloc42"11e2ass="li11e4 n9me="L9246"="sge=sb/60e" >10eeturn3 648 11c" >116" _groreit6YMBOdisk6nvali677"L717"1111as834"> 680 11e" >11spc#Ltf93"8id="L693"11spc#Ltfloc4//a> 11e" >1116"buf93"8id="L693"11bufloc4,"9EXitscp24d.cstc#L69>&quok<%ld\n&quok<;ree_intv_msecamp;ree_(h"sintv_msecatno"4 n9me="L924"> 71ree_(h"sintv_msecatn 11e"msecs4 n9me="L924"> po1e"msecsloc42"11e2ass="li11e4 n9me="L9246"cplacetb/6buncass=)16"9id="L726"1116ass="67NUfvEXPORT_SYMBO 681<6a> 106" >10e"bloc3/gen838f="L6op-level6 *ef="bloc6/ge* Dv_t mp" ts - monito6 dv_t680"L71t="bloci=" class="srefssize_1"L718"1097ass="ssize_1"9id=i=" class="srefock/g695 11e"msecs>sli11ode=gendisk" clock/g695 11e"msecs>sli11loc4/0e" >10ea hre3="bco39="+code"L690"1131ass="licode"9id=ilog2itscexit 6      }16e" >168ric 10e" >10e2 (!<3 hs68510ea hre3="bco39="+code_attc#bute"L690"1131ass="licode_attc#bute"9id=ilog2itscexit 11,NGEitscp24d.c#L715DISK_EVE6s9me=">dis6(ep" tsitscexitilog2itscexitdisk(ep"6e1119ass="6c3/gen9384        strusk"6class68 /a> ANGEitscp24d.c#L715DISK_EVE6sity(a6hrlp-level hre( 695 10e" >10ea hre3="bco39=5"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk"f="sp42ut_part" cllicSto1"lo4"ssiz41ut_part" icSto1"lo4loc4//a> 11e" >1116"bev"L718"1097ass="a+vloc42"11e2ass="li11e4 n9me="L9246s*bl"block6lp-level hre( 719<#L663"bloc4/gen843c#L661097ass="li10e4 n8me="L894"> 6 6o"16"9id="6726"1119ass="li11e3 n8me=6L853"684 n8me="L894"> 648 11c" >116_haft="blo6utex        struct 687"L717"1111ase =l"li10e3 n8me="L8tionu"L718"1097ass="tionuloc4 || "li10e3 n8me="L8sscanf93"8id="L693"11sscanfloc4//a> 11e" >1116"buf93"8id="L693"11bufloc4,"9EXitscp24d.cstc#L69>&quok<%ld&quok<;ree_ 754 10e" >10#L663"bloc4/gen843c#L661097  class9me=">disk(ep"6ecplacetb/6;ructlp-level hre( 6-54 10e" >10EINVAL3"bloc4/gen843cEINVAL1097ass="li10e4 n8me="L894"> 6 6o5"114lass6deptho*9d.c#L715"9id="L716"114l68 >10e"bloc3/gen838f="L6op-level6" ts=alr >6y seassouto*9d.c#L715"9id6"L71569f">dfsync_b/ge =l/a>( cplacetfsy#L663"bloc4/gen843c#L661097 &lk11" >11e/a> 11e" >1116"#L663"bloc4/gen843c#L661097 != -1 class9me=">disk(ep"6"9ass="li16ocleared1*9d.c#L715"9id="6715"169ric 10e" >10e2 (!<3 h834"> 6-54 10e" >10EINVAL3"bloc4/gen843cEINVAL1097ass="li10e4 n8me="L894"> 6 6p9me=">dis6_msecamp;ree_(h"snoll6mseca69di;ruct lp-level hre(1129turndv_t to +codloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk" "11e2ass="li11e4 n9me="L9246pity(a6d="L726"1119ass="li11e3 n6me="L69ass="sref">dflagty(aintv_msecamp;ree_(h"sintv_msecatno"4 n9me="L924"> 71ree_(h"sintv_msecatn 11e"msecs4 n9me="L924"> po1e"msecsloc4f="sp42ut_part" cl#L663"bloc4/gen843c#L661097ass="li10e4 n8me="L894"> 6 6p*bl"block610e" >10e7"blo3k/gen39c#L69iter69_msecao_di08"i=" class="sref__ock/ge*cun5"114atio tamp"lasssssss__ock/ge*cun5"114atioloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk"+c+code=partno" ce" e"L690"1131ass="e" essk" "11e2ass="li11e4 n9me="L9246p"16"9id="6tscexit(ief=codep" ts6sk"s#694 n8me="L894"> 648 11c" >116phaft="blo653"> 648 10e" >10e"bl6c3/ge697"L717"1111as834"> 680 11e" >11tionu"L718"1097ass="tionuloc4"11e2ass="li11e4 n9me="L9246pcplacetb/6NGEass=)]lapacityk"snot;b6i&quo69NUfvEXPORT_SYMBO10e"bloc3/gen838f="L6op-level7"> 682711c" >110"bloc4/gen8402oe7piter700"L71t="blocity[sg80 11e" >11DEVICE_ATTR"L718"1097ass="DEVICE_ATTRloc4//a> 11e" >1116"o"i10e4 n9me="L924"> 717 11+c+code=partno" cS_IRUGO4 n9me="L924"> S_IRUGO> 11+c+code=partno" cock/g695showk/gen9d7c#L16"9ock/g695showloc4+c+code=partno" cNULL3"bloc4/gen843cNULLssk" "11e2ass="li11e4 n9me="L9247itscexit(ief=coduep" ts    []sk"77"9id701"L71t="blocity[sg80 11e" >11DEVICE_ATTR"L718"1097ass="DEVICE_ATTRloc4//a> 11e" >1116"o"i10e>as9me4 n9me="L924"> 717as9me> 11+c+code=partno" cS_IRUGO4 n9me="L924"> S_IRUGO> 11+c+code=partno" cock/g695as9me>showk/gen9d7c#L16"9ock/g695as9me>showloc4+c+code=partno" cNULL3"bloc4/gen843cNULLssk" "11e2ass="li11e4 n9me="L9247i2scexitmsecamp;ree_(h"snoll7rt" c70n8me=t="blocity[sg80 11e" >11DEVICE_ATTR"L718"1097ass="DEVICE_ATTRloc4//a> 11e" >1116"o"i10e> 11e"msecs4 n9me="L924"> o"i10e> 11e"msecs> 11+c+code=partno" cS_IRUGO4 n9me="L924"> S_IRUGO> 11|+code=partno" cS_IWUSR"L718"1097ass="S_IWUSR> 11,NGEitscp24d.c#L715DISK_EVE7T_MEDIA_CH7NGEass=)]lapacityk"snot;b7i&quo7015"114lass="l7"1111assssssssssi=" class="srefock/g695 11e"msecs>showk/gen9d7c#L16"9ock/g695 11e"msecs>showloc4,NGEitscp24d.c#L715DISK_EVE7T4MEDIA_CH7N="L726"1119ass="li11e3 n7di&qu70e2 n8me="L872"> 685 11e"msecs>sli11ode=gendisk" clock/g695 11e"msecs>sli11loc4 "11e2ass="li11e4 n9me="L9247i5MEDIA_CH7N0e" >10e7"blo3k/gen39c#L7top-l70lasscexit(iefsk *10ea hre3="bco39=attc#bute"L690"1131ass="attc#bute"9id=ilog2itscexitattr"li10e4 n9me="L914"> 695attr""9id[A_CHAexit(iefsk * 648 10e" >10e"bl7/a>DE707"L717"1111as3"> 754 10e" >10aev>attrto +cod9 11e" >1129ev>attrto +cod"L71.log2itscexit 11,NGEitscp24d.c#L715DISK_EVE7o8ep" tsn*7dGEass=)]lapacityk"snot;b7ss="l708ode=dev_to_d3"> 754 10e" >10aev>attrto +cod>as9me4 n9me="L924"> aev>attrto +cod>as9me"L71.log2itscexit 11,NGEitscp24d.c#L715DISK_EVE7o9ep" tsn*7dUESTass=)]lapacitk"snot;7914">70code=dev_to_d3"> 754 10e" >10aev>attrto +cod> 11e"msecs4 n9me="L924"> aev>attrto +cod> 11e"msecs"L71.log2itscexit 11,NGEitscp24d.c#L715DISK_EVE7el nollati7by defaulto*9d.c#L715"9id7"L71571k(ieowneNULL3"bloc4/gen843cNULLssk",NGEitscp24d.c#L715DISK_EVE7etscexit76    71di;ruct lp-level hre((a *n7712"_71, itois=guaranteed15hat mp" t par   mpro844">.o +cod>dfl> 11e"msecs which*defaulaic   0rulotiossssssssssssssssssssscexit7ddep" tsn*7>d =  4k/gen44ate top-level7"9id="L7157114lass="li11e4 n9me="L927"> 6 714mmenc43ate top-level  *ef="tp;ree_(h"snoll_msecao_di clask7"16"9id="L7( *-71a4"sst="bloc3"> i=" class="srefe="L9695set>dfl> 11e"msecsk/gen9d7c#L16"9ock/g695set>dfl> 11e"msecsloc4/ity[sgkilog2itscexit 701
11e"7>112 7202 n8me="L872"> 68510ea hre3="bco39=kernel_par  k/gen9d7c#L16"9kernel_par  "9id=ilog2itscexit 6>paric 11e" 7112et72ed1lo=genbdm112="blo4k/gen42ate7top-l722">dfsync_b/g0e" >10ea hre3="bco39="ss=08"9id="L718"1097ass="li10e4 78me="L894"> 717 11e" >111="blo4k/gen417    Th  outputef=list of all f=7s_MEDIA_CH7lsgref">diskee =l/a>(7cplac7215"114lass="l3"> i=" class="srefreu"L718"1097ass="reu    Th  outputef=list of all f=7sT_EJECT_R723"107lass="li10e4 n9me="7914">72_roitscexit(iesetp/a> _roas77sitscexit7k7h"sno72_msecao_di08"i=" class="srefreu"L718"1097ass="reu    f="sp42ut_part" clpar  >set>ue4 94 n9me="L924"> par  >set>ue4 9loc4//a> 11e" >1116"valk/gen9d7c#L16"9valssk",0ea hre3="bco39=kpelse i clsgref"kploc4 Th  outputef=list of all f=7sdep" tsn*7sk = disk(ep"7s7ep" tsn*7"s =  680 11e" >11reu"L718"1097ass="reu    Th  outputef=list of all f=7s9id="L7157>(adiskintv_msecamp;ree_<7a>(h"sintv7msecatno")16"9id="L726"1179ass=72code=dev_to_di=" class="srefmutex_  3     38         mutex_  3 loc4/3"> 754 10e" >10a>DIS695mutexk/gen9d7c#L16"9ock/g695mutexloc4 Th  outputef=list of all f=7> 722 71e" >113"bloc4ifdef43ate 7op-le7314lass="li11e4 n9me="L914"> 6527715"114las7="li11e4 n8me="L834"> 7237/a> 173="L717"1111as10e" hre3="bco3list_fortoach_5 11e" >1116"o"111="blo4k/gen417    +c3"> 754 10e" >10"ss=08"9id="L718"1097ass="li10e4 78me="L8+c+code=partno" c"9de"L718"1097ass=""9deloc4 class9me=">disk(ep"7  * IN7:bl"* f=cod+codecmp" ts -7+code73placetb/geass==" class4 10e" >10"ss=0.c#L718"9id="L718"1097ass="li10e.c#L718"9id=loc4//a> 11e" >1116"o"111="blo4k/gen417    /a> = eass="li10e4 n8me="L894">92479me="L914"7 7      }11e" >11e4bloc4m7enc4373e0="block/gen9d7c#Ls="    mae">7 >11e5bloc7mmenc43ate top-level  * e7eries73ass="sref">dflagty(a 754 10e" >10a>DIS695mutexk/gen9d7c#L16"9ock/g695mutexloc4 Th  outputef=list of all f=7>sitscexit7gen* On" class=from lois=7uncbu73lasscexit(iefsk *d79me="L924"> 677{11e" 711e7b73a>kobjecl_pur834"> 6level hre((7L894"> 638 11e" >11e87loc4m73NE_MU/a>EXPORT_SYMBO 719
11e" >71e9bl73ref">diskintv_msecamp;ree_<7s>(h"sintv78me="L844"> 720 11e" 7114f 73a4"sst="blocity[sg0e" >10ea hre3="bco39=kernel_par  _ope"L718"1097ass="kernel_par  _ope>kobj54 10e" >10a>DIS695dfl> 11e"msecs_par  _ope"L718"1097ass="a>DIS695dfl> 11e"msecs_par  _ope    f="=genbdmset>dfl> 11e"msecsloc4,NGEitscp24d.c#L715DISK_EVE7li11e4 n9m7="L924"> 742 11e" >1172 (!<74="L717"1111as.log2itscexitue4 94 n9me="L924"> par  >get>ue4 9loc4,NGEitscp24d.c#L715DISK_EVE7l * IN7top-level  * ING:bl"*7.c#L7742">df Th  outputef=list of all f=7 * aggrega7e  *  742+TOitois=gua7antee7re0="block/gen9d7c#Ls="    mae">74"> 67711e7bloc4mmenc43at7 top-74e2 n8#undef"9id="L717"1111aMODULE_PARAM_PREFIX4 n9me="L924"> MODULE_PARAM_PREFIX0="block/gen9d7c#Ls="    mae">74sitscexit7di=" class="sref">dflagty7/a>(a74_msec#defsre"9id="L717"1111aMODULE_PARAM_PREFIX4 n9me="L924"> MODULE_PARAM_PREFIX0="bf">dflEXitscp24d.cstc#L69>&quok<844">.&quok<;ree_74~sgref">d7cy* 648 11c" >117"ree_(778 10e" >10ea hre3="s7e34  748"9idlagty(a 11e" >1116"o"i10e>dfl> 11e"msecsk/gen9d7c#L16"9o"i10e>dfl> 11e"msecs    +c3"> 754 10e" >10"ss=08"9id=>dfl> 11e"msecs_par  _ope"L718"1097ass="a>DIS695dfl> 11e"msecs_par  _ope    ,NGEitscp24d.c#L715DISK_EVE7l"li11e4 97/a>(ie(_range_s3_nfer7ck_co7485"114lass="l7"1111as3"> 754 10e" >10"ss=08"9id=>dfl> 11e"msecs"L718"1097ass="a>DIS695dfl> 11e"msecsssk",a>644 Th  outputef=list of all f=7l>(h"sintv7L71=" class="sref">d = 10e"bloc3/gen838f="L6op-level7range_s3_n7l"ock_code_clar/a>>diskpr_e75p" ts like mediaulasnge and erulotiossssssssssssssssssssscexit7ri11e4 n9m7flagty(aDIS{alsss|add|del|release}S695DIS695 4k/gen44ate top-level7r    44ate7L71)16"9id="L726"1122ass=7li11e75el  * ING:bl"oooooooo*9dap;ree_(h"snoll_msecao_di clask7r* aggrega70e" >10e5bloc3mmenc35c#L67osref7515"11t="blocgd"L71="lass=""sref"14"> alsss18"9id="L718"1097ass="li10ealsss18"9id=loc4/0e" >10ea hre3="bco39=5"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk" class9me=">disk(ep"7r"> 677disk7atp/a753"> 6ANGEitscp24d.c#L715DISK_EVE7r*bl"block7726"1122ass="li11e3 n9me=7L923"75_msecao_di08"io*9d.c#L715"9id="L715"ss=08"9id="L718"1097ass="li10e4 78me="L894"> 717 11e" >111="blo4k/gen417    Th  outputef=list of all f=7f="sge=sb/7emr > _onlyass="sk" class7exit<754 n8me="L894"> 648 11c" >117+codecm/a>7*lass="sgref">diskb/g7 =l/a757"L717"1111ase =l"li10e3 n8me="L8">diskintv_msecamp;ree_(h"sintv_msecatnfope"L718"1097ass="fope    /a> =  rs="l_"li10eloc4 class9me=">disk(ep"7r"li11e4 97eass=)3"8id="L693"1127ass7"li117585"114lass="l7"1111as834"> Th  outputef=list of all f=7f>(h"sintv7        tamp" class="n9d.7#L70875 >10e"bloc3/gen838f="L6op-level7"sref">NUf7b/ge =l/a>( cplacetb/7eass=76k(ieowne >111="blo4k/gen417        strulotiosgrefkzalsss"L718"1097ass="kzalsssloc4/0izeof(4"> 717 11e" >111="blo4k/gen417    )+c+code=partno" cGFP_KERNEL3"bloc4/gen843cGFP_KERNELloc4 Th  outputef=list of all f=7="sre0>dis710e4bloc3mmenc364"+c7"sref76placetb/geass==" class4 10e" >10pr_warn"L718"1097ass="pr_warnloc4//EXitscp24d.cstc#L69>&quok<%s: failede="Linitializeu"li10e\n&quok<;ree_intv_msecamp;ree_(h"sintv_msecatnli10enc36"L718"1097ass="li10enc36loc4 Th  outputef=list of all f=7=* aggrega7YMBOdisk7/gemr7615"114lass="l7"1111as834"> Th  outputef=list of all f=7=k/gXPORT_79id="L726"1122ass="li11e37n8me=76e2 n8me="L872/a>EXPORT_SYMBO(iefsk *disk 7 kobjecl_purh"sintv_msecatnINIT_LIST_HEAD"L718"1097ass="INIT_LIST_HEADloc4/3"> 754 10e" >10o"111="blo4k/gen417    /a> = 7o"sk"708"9id="L718"1097as7="li1767"L717"1111as10e" hre3="bco3"l111="blo4k/gen417    /a> = diskintv_msecamp;ree_Th  outputef=list of all f=7="li11e4 976        tamp"sk" classce7it 754 10e" >10o"111="blo4k/gen417    /a> = dbdget_/a> * 754 10e" >10o"111="blo4k/gen417    /a> = (ieowne >111="blo4k/gen417    /a> = dis71119ass="li11e3 n8me="L847"> 6>77="L717"1111as10e" hre3="bco3o"4 n9me="L924"> 71ree_(h"sintv_msecatn 11e"msecs4 n9me="L924"> po1e"msecsloc4f="-1Th  outputef=list of all f=7  754 7ass="sgref">disks/ge 7l/a>(77n8me="L833"> 753 10e" >1INIT_DELAYED_WORK"L718"1097ass="INIT_DELAYED_WORKloc4/3"> 754 10e" >10o"111="blo4k/gen417    /a> = 1116"a>DIS6959id=fn"L718"1097ass="a>DIS6959id=fnloc4 Th  outputef=list of all f=7 * aggrega7i11e3 _nex 3"> 7547eity(a7a _groreitno"16"9id="L72671119a77ass="sref">dflagty(aintv_msecamp;ree_(h"sintv_msecatno"4 n9me="L924"> 71ree_ ="sp42ut_part" claselse i clsgref">diskEXPORT_SYMBO10eeturn3 648 11c" >117" _groreit7YMBOdisk7nvali777"L71t="blocgd"L71="lass=""sref"14"> add18"9id="L718"1097ass="li10eadd18"9id=loc4/0e" >10ea hre3="bco39=5"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk" class9me=">disk(ep"7"cplacetb/7buncass=)16"9id="L726"1117ass="77NUfv<=genbdm 681<7a> 1077ecif" cpoll=i3 =l"li10e3 n8me="L8">diskintv_msecamp;ree_(h"sintv_msecatn >111="blo4k/gen417    )genbdm 685 Th  outputef=list of all f=7e9ass="li17e3 n8me="L883"> 6      }17e" >178ric 1h  outputef=list of all f=7e 754 7(ep" tsitscexit(h"snoll_msecao_di clask7e1119ass="7c3/gen9384        strusk"7class783cif" cpoll=i3 =li=" class="srefsysf1_create_file="L718"1097ass="sysf1_create_file=loc4/3"> 754 10e" >10a>DISto1"+v"L718"1097ass="a>DISto1"+vloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk" (h"sintv_msecatnkobj"L718"1097ass="kobj"L72,a/a> 11e" >1116"ock/g695attr"li10e4 n9me="L914"> 695attr""9id)f&lk(a7hrlp-level hre( 685 10e" >10pr_warn"L718"1097ass="pr_warnloc4//EXitscp24d.cstc#L69>&quok<%s: failede="Lcreate sysf15file=2<   "li10e\n&quok<;ree_disk(ep"7s*bl"block7lp-level hre(dflagty(aintv_msecamp;ree_(h"sintv_msecatnli10enc36"L718"1097ass="li10enc36loc4 Th  outputef=list of all f=7o"16"9id="7726"1119ass="li11e3 n8me=7L853"784 n8me="L894"> 648 11c" >117_haft="blo7utex        struct 787"L717"1111as10e" hre3="bco3mutex_  3     38         mutex_  3 loc4/3"> 754 10e" >10a>DIS695mutexk/gen9d7c#L16"9ock/g695mutexloc4 Th  outputef=list of all f=7ecplacetb/7;ructlp-level hre( 754 10e" >10a>DIskintv_msecamp;ree_(h"sintv_msecatn >111="blo4k/gen417    /a> =  754 10e" >10"ss=08"9id="L718"1097ass="li10e4 78me="L8 Th  outputef=list of all f=7e5"114lass7deptho*9d.c#L715"9id="L717"114l78code=dev_to_di=" class="srefmutex_un0       38         mutex_un0   loc4/3"> 754 10e" >10a>DIS695mutexk/gen9d7c#L16"9ock/g695mutexloc4 Th  outputef=list of all f=7" ts=alr >7y seassouto*9d.c#L715"9id7"L7157914lass="li11e4 n9me="L914"> 6527"9ass="li17ocleared1*9d.c#L715"9id="7715"179ric 10e" >10e like mediaulasnge and erulotiossssssssssssssssssssscexit7p9me=">dis7_msecamp;ree_(h"snoll7mseca79el  * ING:bl"oooooooo*9ddddddddd* Bssss tionu isLinitializede="L1uford foofo293wd1l initialrulotiossssssssssssssssssssscexit7p1119ass="7-1 for defaulto*9d.c#L71579id="795hat mp" t chedeatid.c#L715"dddddddd* e*cun5" kicksLitl3">o actionn8me="L837"> 4k/gen44ate top-level7pity(a7d="L726"1119ass="li11e3 n7me="L79vel  * Th  output *oise'dddddddd*p;ree_(h"snoll_msecao_di clask7p*bl"block710e" >10e7"blo3k/gen39c#L79iter79_msecao_di08"i=" class="sref__ock/ge*cun5"114atio tamp"lasssssss__ock/ge*cun5"114atioloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk"+c+code=partno" ce" e"L690"1131ass="e" essk" "11e2ass="li11e4 n9me="L9247p"16"9id="7tscexit(ief=codep" ts7sk"s#794 n8m/a>EXPORT_SYMBO 648 10e" >10e"bl7c3/ge798"9id11e2ass="li11e4 n9me="L9247pcplacetb/7NGEass=)]lapacityk"snot;b7i&quo7985"11t="blocgd"L71="lass=""sref"14"> del08"9id="L718"1097ass="li10edel08"9id=loc4/0e" >10ea hre3="bco39=5"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk" class9me=">disk(ep"7NT_EJECT_R7QUESTass=)]lapacitk"snot;7di&qu79i11e4=genbdm 682811c" >110"bloc4/gen8402oe8piter80f">dfsync_b/ge =l"li10e3 n8me="L8">diskintv_msecamp;ree_(h"sintv_msecatn >111="blo4k/gen417    )genbdm10e2 (!<3 h834"> "11e2ass="li11e4 n9me="L9248i2scexitmsecamp;ree_(h"snoll8rt" c80di;ruct lp-level hre( dv_t to +cod9 11e" >1129turndv_t to +codloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk" "11e2ass="li11e4 n9me="L9248T4MEDIA_CH8N="L726"1119ass="li11e3 n8di&qu80_roitscexit(iesetp/a> _roas8i5MEDIA_CH8N0e" >10e7"blo3k/gen39c#L8top-l80_msecao_di08"i=" class="srefmutex_  3     38         mutex_  3 loc4/3"> 754 10e" >10a>DIS695mutexk/gen9d7c#L16"9ock/g695mutexloc4 Th  outputef=list of all f=8odep" tsn*8d.c#L715"9id="L715"114las8="li180a>kobjecl_purh"sintv_msecatn0ist_del0init"L718"1097ass="0ist_del0initloc4/3"> 754 10e" >10a>DIskintv_msecamp;ree_(h"sintv_msecatn >111="blo4k/gen417    /a> =  648 10e" >10e"bl8/a>DE807"L717"1111as10e" hre3="bco3mutex_un0       38         mutex_un0   loc4/3"> 754 10e" >10a>DIS695mutexk/gen9d7c#L16"9ock/g695mutexloc4 Th  outputef=list of all f=8o8ep" tsn*8dGEass=)]lapacityk"snot;b8ss="l80ref">diskintv_msecamp;ree_<8o9ep" tsn*8dUESTass=)]lapacitk"snot;8914">80code=dev_to_di=" class="srefsysf1_remove_file="L718"1097ass="sysf1_remove_file=loc4/3"> 754 10e" >10a>DISto1"+v"L718"1097ass="a>DISto1"+vloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk" (h"sintv_msecatnkobj"L718"1097ass="kobj"L72,a/a> 11e" >1116"ock/g695attr"li10e4 n9me="L914"> 695attr""9id)Th  outputef=list of all f=8el nollati8by defaulto*9d.c#L715"9id8"L71581kEXPORT_SYMBO86    81n8me=t="blocgd"L71="lass=""sref"14"> releaseto +cod9 11e" >1129turnreleaseto +codloc4/0e" >10ea hre3="bco39=5"105lass="li10e4 68me="L894"> 756 11e" >1116"blo4"ssiz41ut_part" classk" class9me=">disk(ep"8/_MEDIA_CH8l_jiffieity(a ANGEitscp24d.c#L715DISK_EVE8dT_EJECT_R8k *dflterval is set, alwaysou  foobssss tionu should 4la1 from li10edel08"9id=()d*p;ree_(h"snoll_msecao_di clask8d5MEDIA_CH8/a>(ief=codep" ts     ">n8712"_81_msecao_di08"i=" class="srefWARN_ON_ONCE"ssiz41ut_part"WARN_ON_ONCEloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk"(h"sintv_msecatno"4 n9me="L924"> 71ree_ " >11" >11e/a> 11e" >1116"a>DIskintv_msecamp;ree_(h"sintv_msecatn >111="blo4k/gen417    /a> = d = kobjecl_purh"sintv_msecatnkfree"L718"1097ass="kfreeloc4//a> 11e" >1116"blo4"ssiz41ut_part" classk"(h"sintv_msecatno"4 n9me="L924"> 71ree_)Th  outputef=list of all f=8e7ep" tsn*8111truct4 6 814mmenc/prenc/div>


c/div>


Theaoriginal LXR software byo foo>EXPORT_Shttp://sourceforge.net/projects/lxr">LXR t, aunity"L72,atcleaexperialwaal version byo>EXPORT_Smailto:lxr@11eux.no="0xr@11eux.no"L72.
c/div>

0xr.11eux.no kindly host   byo>EXPORT_Shttp://www.redpill-11epro.no="Redpill L1epro AS"L72,aprovider7of4L1euxcity[ultd1l fordoperations sercodes sincla1995.
c/div>