Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 814b2932 authored by Joe Maples's avatar Joe Maples Committed by Razziell
Browse files

block: maple: Serve asynchronous requests before synchronous ones



Signed-off-by: default avatarJoe Maples <joe@frap129.org>
parent dc36c510
Loading
Loading
Loading
Loading
+7 −13
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
#include <linux/powersuspend.h>
#endif

#define MAPLE_IOSCHED_PATCHLEVEL	(4)
#define MAPLE_IOSCHED_PATCHLEVEL	(5)

enum { ASYNC, SYNC };

@@ -171,18 +171,18 @@ maple_choose_request(struct maple_data *mdata, int data_dir)

	/*
	 * Retrieve request from available fifo list.
	 * Synchronous requests have priority over asynchronous.
	 * Asynchronous requests have priority over synchronous.
	 * Read requests have priority over write.
	 */
	if (!list_empty(&sync[data_dir]))
		return rq_entry_fifo(sync[data_dir].next);
	if (!list_empty(&async[data_dir]))
		return rq_entry_fifo(async[data_dir].next);
	if (!list_empty(&sync[data_dir]))
		return rq_entry_fifo(sync[data_dir].next);

	if (!list_empty(&sync[!data_dir]))
		return rq_entry_fifo(sync[!data_dir].next);
	if (!list_empty(&async[!data_dir]))
			return rq_entry_fifo(async[!data_dir].next);
	if (!list_empty(&sync[!data_dir]))
		return rq_entry_fifo(sync[!data_dir].next);

	return NULL;
}
@@ -316,11 +316,6 @@ maple_exit_queue(struct elevator_queue *e)
{
	struct maple_data *mdata = e->elevator_data;

	BUG_ON(!list_empty(&mdata->fifo_list[SYNC][READ]));
	BUG_ON(!list_empty(&mdata->fifo_list[SYNC][WRITE]));
	BUG_ON(!list_empty(&mdata->fifo_list[ASYNC][READ]));
	BUG_ON(!list_empty(&mdata->fifo_list[ASYNC][WRITE]));

	/* Free structure */
	kfree(mdata);
}
@@ -438,5 +433,4 @@ module_exit(maple_exit);
MODULE_AUTHOR("Joe Maples");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Maple I/O Scheduler");
MODULE_VERSION("Testing");
MODULE_VERSION("1.0");