]> www.infradead.org Git - users/hch/misc.git/commitdiff
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 e85941bec857b6a2c2901b687250f53316566b10..8717d43e0792b0a20b4e7b9f445213d8d7bc42e9 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 9430cde13d1a411965a9f4ff4c33b3efb7c593ca..f169f4bae91782aed02f2e243e8dec9118590209 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 2a78544bf2018005e9bf96d24e62a0d07f31c1ad..dbf357ef4fab9362b7fb2f53724b6bea2ff057b7 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 *);