[Devel] [PATCH] Cleanup elevator_ops->trim function

Pavel Emelyanov xemul at openvz.org
Thu Jul 19 07:55:08 PDT 2007


The elevator_ops's member "trim" is declared and called not like
all the other ones. Was this deliberate?

Signed-off-by: Pavel Emelyanov <xemul at openvz.org>

---

 block/as-iosched.c       |    2 +-
 block/cfq-iosched.c      |    2 +-
 block/elevator.c         |    4 ++--
 include/linux/elevator.h |    3 ++-
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/block/as-iosched.c b/block/as-iosched.c
index 3e316dd..add524c 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -1451,7 +1451,7 @@ static struct elevator_type iosched_as =
 		.elevator_may_queue_fn =	as_may_queue,
 		.elevator_init_fn =		as_init_queue,
 		.elevator_exit_fn =		as_exit_queue,
-		.trim =				as_trim,
+		.elevator_trim_fn =		as_trim,
 	},
 
 	.elevator_attrs = as_attrs,
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 9755a3c..5ee8c39 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -2237,7 +2237,7 @@ static struct elevator_type iosched_cfq 
 		.elevator_may_queue_fn =	cfq_may_queue,
 		.elevator_init_fn =		cfq_init_queue,
 		.elevator_exit_fn =		cfq_exit_queue,
-		.trim =				cfq_free_io_context,
+		.elevator_trim_fn =		cfq_free_io_context,
 	},
 	.elevator_attrs =	cfq_attrs,
 	.elevator_name =	"cfq",
diff --git a/block/elevator.c b/block/elevator.c
index d265963..ae7601f 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -983,12 +983,12 @@ void elv_unregister(struct elevator_type
 	/*
 	 * Iterate every thread in the process to remove the io contexts.
 	 */
-	if (e->ops.trim) {
+	if (e->ops.elevator_trim_fn) {
 		read_lock(&tasklist_lock);
 		do_each_thread(g, p) {
 			task_lock(p);
 			if (p->io_context)
-				e->ops.trim(p->io_context);
+				e->ops.elevator_trim_fn(p->io_context);
 			task_unlock(p);
 		} while_each_thread(g, p);
 		read_unlock(&tasklist_lock);
diff --git a/include/linux/elevator.h b/include/linux/elevator.h
index e88fcbc..896831a 100644
--- a/include/linux/elevator.h
+++ b/include/linux/elevator.h
@@ -29,6 +29,7 @@ typedef void (elevator_deactivate_req_fn
 
 typedef void *(elevator_init_fn) (request_queue_t *);
 typedef void (elevator_exit_fn) (elevator_t *);
+typedef void (elevator_trim_fn) (struct io_context *);
 
 struct elevator_ops
 {
@@ -55,7 +56,7 @@ struct elevator_ops
 
 	elevator_init_fn *elevator_init_fn;
 	elevator_exit_fn *elevator_exit_fn;
-	void (*trim)(struct io_context *);
+	elevator_trim_fn *elevator_trim_fn;
 };
 
 #define ELV_NAME_MAX	(16)




More information about the Devel mailing list