X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fvdev_disk.c;h=3f9b624d8be377ec6ec9581f647a5c5343222b6c;hb=84daaddedbfc9cf4bd1490d8a6f4b2967051e308;hp=8df43d150f70f534e7b7ecc5ca9ae7881d584ccd;hpb=6c2856726fbae681649930d9620d9087080e58fc;p=zfs.git diff --git a/module/zfs/vdev_disk.c b/module/zfs/vdev_disk.c index 8df43d1..3f9b624 100644 --- a/module/zfs/vdev_disk.c +++ b/module/zfs/vdev_disk.c @@ -121,8 +121,15 @@ vdev_elevator_switch(vdev_t *v, char *elevator) char *device = bdev->bd_disk->disk_name; int error; - /* Skip devices which are not whole disks (partitions) */ - if (!v->vdev_wholedisk) + /* + * Skip devices which are not whole disks (partitions). + * Device-mapper devices are excepted since they may be whole + * disks despite the vdev_wholedisk flag, in which case we can + * and should switch the elevator. If the device-mapper device + * does not have an elevator (i.e. dm-raid, dm-crypt, etc.) the + * "Skip devices without schedulers" check below will fail. + */ + if (!v->vdev_wholedisk && strncmp(device, "dm-", 3) != 0) return (0); /* Skip devices without schedulers (loop, ram, dm, etc) */