Patch from Nick Piggin This patch removes the plugging stuff. It makes some small cleanups, removes a comment, renames AS_IO_RUNNING to AS_TASK_RUNNING. drivers/block/as-iosched.c | 16 ++++++---------- 1 files changed, 6 insertions(+), 10 deletions(-) diff -puN drivers/block/as-iosched.c~as-no-plugging-and-cleanups drivers/block/as-iosched.c --- 25/drivers/block/as-iosched.c~as-no-plugging-and-cleanups 2003-02-27 02:01:54.000000000 -0800 +++ 25-akpm/drivers/block/as-iosched.c 2003-02-27 02:01:54.000000000 -0800 @@ -99,7 +99,7 @@ struct as_io_context { /* Bits in as_io_context.state */ enum as_io_states { - AS_IO_RUNNING=0, /* Process has not exitted */ + AS_TASK_RUNNING=0, /* Process has not exitted */ }; struct as_data { @@ -195,8 +195,8 @@ static void put_as_io_context(struct as_ /* Called by the exitting task */ void exit_as_io_context(struct as_io_context *aic) { - clear_bit(AS_IO_RUNNING, &aic->state); - put_as_io_context(aic); + clear_bit(AS_TASK_RUNNING, &aic->state); + put_as_io_context(&aic); } /* @@ -216,11 +216,10 @@ static struct as_io_context *get_as_io_c atomic_inc(&nr_as_io_requests); atomic_set(&ret->refcount, 1); ret->pid = tsk->pid; - ret->state = 1 << AS_IO_RUNNING; + ret->state = 1 << AS_TASK_RUNNING; tsk->as_io_context = ret; } } - /* TODO What if ret is free'ed here? */ atomic_inc(&ret->refcount); return ret; } @@ -716,15 +715,12 @@ static void as_start_anticipation(struct mod_timer(&ad->antic_timer, timeout); ad->antic_status = ANTIC_WAIT; - blk_plug_device(q); } static void as_stop_anticipation_notimer(struct as_data *ad) { - if (ad->antic_status == ANTIC_WAIT) { - blk_remove_plug(ad->q); + if (ad->antic_status == ANTIC_WAIT) schedule_work(&ad->antic_work); - } ad->antic_status = ANTIC_FINISHED; } @@ -803,7 +799,7 @@ static int as_can_break_anticipation(str } aic = ad->as_io_context; - if (aic && !test_bit(AS_IO_RUNNING, &aic->state)) { + if (aic && !test_bit(AS_TASK_RUNNING, &aic->state)) { ant_stats.exitted_tasks++; return 1; } _