X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=block%2Fblk-sysfs.c;h=fc41d83be22bb02bab61f09b4b356dbba4697a05;hb=548453fd107f789f5f1bc2dc13cc432ceb3b5efd;hp=54d0db116153c943674217aac801144a8c55553b;hpb=6e5565f949af1322f8f3d3f43d044645ae448499;p=~andy%2Flinux diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 54d0db11615..fc41d83be22 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -276,9 +276,12 @@ int blk_register_queue(struct gendisk *disk) struct request_queue *q = disk->queue; - if (!q || !q->request_fn) + if (WARN_ON(!q)) return -ENXIO; + if (!q->request_fn) + return 0; + ret = kobject_add(&q->kobj, kobject_get(&disk->dev.kobj), "%s", "queue"); if (ret < 0) @@ -300,7 +303,10 @@ void blk_unregister_queue(struct gendisk *disk) { struct request_queue *q = disk->queue; - if (q && q->request_fn) { + if (WARN_ON(!q)) + return; + + if (q->request_fn) { elv_unregister_queue(q); kobject_uevent(&q->kobj, KOBJ_REMOVE);