]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - block/elevator.c
block: Expose stacked device queues in sysfs
[mirror_ubuntu-zesty-kernel.git] / block / elevator.c
index ebee948293ebc7c265ebb4d9670575e69d6f073e..bd78f693fcf28d032ddf474ee02ba2dfdc26d232 100644 (file)
@@ -575,6 +575,9 @@ void elv_drain_elevator(struct request_queue *q)
  */
 void elv_quiesce_start(struct request_queue *q)
 {
+       if (!q->elevator)
+               return;
+
        queue_flag_set(QUEUE_FLAG_ELVSWITCH, q);
 
        /*
@@ -1050,6 +1053,9 @@ ssize_t elv_iosched_store(struct request_queue *q, const char *name,
        char elevator_name[ELV_NAME_MAX];
        struct elevator_type *e;
 
+       if (!q->elevator)
+               return count;
+
        strlcpy(elevator_name, name, sizeof(elevator_name));
        strstrip(elevator_name);
 
@@ -1073,10 +1079,15 @@ ssize_t elv_iosched_store(struct request_queue *q, const char *name,
 ssize_t elv_iosched_show(struct request_queue *q, char *name)
 {
        struct elevator_queue *e = q->elevator;
-       struct elevator_type *elv = e->elevator_type;
+       struct elevator_type *elv;
        struct elevator_type *__e;
        int len = 0;
 
+       if (!q->elevator)
+               return sprintf(name, "none\n");
+
+       elv = e->elevator_type;
+
        spin_lock(&elv_list_lock);
        list_for_each_entry(__e, &elv_list, list) {
                if (!strcmp(elv->elevator_name, __e->elevator_name))