block: return void from the queue_sysfs_entry load_module method
authorChristoph Hellwig <hch@lst.de>
Tue, 8 Oct 2024 05:08:41 +0000 (07:08 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 22 Oct 2024 14:16:22 +0000 (08:16 -0600)
Requesting a module either succeeds or does nothing, return an error from
this method does not make sense.

Also move the load_module after the store method in the struct
declaration to keep the important show and store methods together.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Link: https://lore.kernel.org/r/20241008050841.104602-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-sysfs.c
block/elevator.c
block/elevator.h

index e85941b..8717d43 100644 (file)
@@ -23,8 +23,8 @@
 struct queue_sysfs_entry {
        struct attribute attr;
        ssize_t (*show)(struct gendisk *disk, char *page);
-       int (*load_module)(struct gendisk *disk, const char *page, size_t count);
        ssize_t (*store)(struct gendisk *disk, const char *page, size_t count);
+       void (*load_module)(struct gendisk *disk, const char *page, size_t count);
 };
 
 static ssize_t
@@ -684,11 +684,8 @@ queue_attr_store(struct kobject *kobj, struct attribute *attr,
         * queue to ensure that the module file can be read when the request
         * queue is the one for the device storing the module file.
         */
-       if (entry->load_module) {
-               res = entry->load_module(disk, page, length);
-               if (res)
-                       return res;
-       }
+       if (entry->load_module)
+               entry->load_module(disk, page, length);
 
        blk_mq_freeze_queue(q);
        mutex_lock(&q->sysfs_lock);
index 9430cde..f169f4b 100644 (file)
@@ -704,15 +704,15 @@ static int elevator_change(struct request_queue *q, const char *elevator_name)
        return ret;
 }
 
-int elv_iosched_load_module(struct gendisk *disk, const char *buf,
-                           size_t count)
+void elv_iosched_load_module(struct gendisk *disk, const char *buf,
+                            size_t count)
 {
        char elevator_name[ELV_NAME_MAX];
        struct elevator_type *found;
        const char *name;
 
        if (!elv_support_iosched(disk->queue))
-               return -EOPNOTSUPP;
+               return;
 
        strscpy(elevator_name, buf, sizeof(elevator_name));
        name = strstrip(elevator_name);
@@ -723,8 +723,6 @@ int elv_iosched_load_module(struct gendisk *disk, const char *buf,
 
        if (!found)
                request_module("%s-iosched", name);
-
-       return 0;
 }
 
 ssize_t elv_iosched_store(struct gendisk *disk, const char *buf,
index 2a78544..dbf357e 100644 (file)
@@ -148,8 +148,8 @@ extern void elv_unregister(struct elevator_type *);
  * io scheduler sysfs switching
  */
 ssize_t elv_iosched_show(struct gendisk *disk, char *page);
-int elv_iosched_load_module(struct gendisk *disk, const char *page,
-                           size_t count);
+void elv_iosched_load_module(struct gendisk *disk, const char *page,
+               size_t count);
 ssize_t elv_iosched_store(struct gendisk *disk, const char *page, size_t count);
 
 extern bool elv_bio_merge_ok(struct request *, struct bio *);