lkml.org 
[lkml]   [2012]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Kernel crashing on eject SD card
    Hello,

    This seems like the right approach to me, but..

    On Wed, Feb 15, 2012 at 11:56:19AM +0900, Jun'ichi Nomura wrote:
    > +int invalidate_partitions(struct gendisk *disk, struct block_device *bdev)
    > +{
    > + int res;
    > +
    > + res = drop_partitions(disk, bdev);
    > + if (res)
    > + return res;
    > +

    Hmmm... shouldn't we have set_capacity(disk, 0) here?

    > + check_disk_size_change(disk, bdev);
    > + bdev->bd_invalidated = 0;
    > + /* tell userspace that the media / partition table may have changed */
    > + kobject_uevent(&disk_to_dev(disk)->kobj, KOBJ_CHANGE);

    Also, we really shouldn't be generating KOBJ_CHANGE after every
    -ENOMEDIUM open. This can easily lead to infinite loop. We should
    generate this iff we actually dropped partitions && modified the size.

    Thanks.

    --
    tejun


    \
     
     \ /
      Last update: 2012-02-15 18:29    [W:0.021 / U:59.888 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site