X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fzvol.c;h=c3bd25c3b610be4ea1a63f7ade350fa51bbedc12;hb=7bd04f2d7d99780f190d4027e6e81fc0df11ba95;hp=b07476c4208507cbb9849a0317f51a4a6f1b7d71;hpb=089fa91bc51dc10da5a75a6d9fff77f186fccb23;p=zfs.git diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c index b07476c..c3bd25c 100644 --- a/module/zfs/zvol.c +++ b/module/zfs/zvol.c @@ -1159,6 +1159,7 @@ static zvol_state_t * zvol_alloc(dev_t dev, const char *name) { zvol_state_t *zv; + int error = 0; zv = kmem_zalloc(sizeof (zvol_state_t), KM_SLEEP); if (zv == NULL) @@ -1168,6 +1169,15 @@ zvol_alloc(dev_t dev, const char *name) if (zv->zv_queue == NULL) goto out_kmem; +#ifdef HAVE_ELEVATOR_CHANGE + error = elevator_change(zv->zv_queue, "noop"); +#endif /* HAVE_ELEVATOR_CHANGE */ + if (error) { + printk("ZFS: Unable to set \"%s\" scheduler for zvol %s: %d\n", + "noop", name, error); + goto out_queue; + } + #ifdef HAVE_BLK_QUEUE_FLUSH blk_queue_flush(zv->zv_queue, VDEV_REQ_FLUSH | VDEV_REQ_FUA); #else