Commit d51c9cdf authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: return void from the queue_sysfs_entry load_module method



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: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDamien Le Moal <dlemoal@kernel.org>
Reviewed-by: default avatarAndreas Hindborg <a.hindborg@kernel.org>
Link: https://lore.kernel.org/r/20241008050841.104602-1-hch@lst.de


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 758737d8
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -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);
+3 −5
Original line number Diff line number Diff line
@@ -704,7 +704,7 @@ 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,
void elv_iosched_load_module(struct gendisk *disk, const char *buf,
			     size_t count)
{
	char elevator_name[ELV_NAME_MAX];
@@ -712,7 +712,7 @@ int elv_iosched_load_module(struct gendisk *disk, const char *buf,
	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,
+2 −2
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ 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,
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);