Get rid of pdflush_operation() in emergency sync and remount

Opencode a cheasy approach with kevent. The idea here is that we'll
add some generic delayed work infrastructure, which probably wont be
based on pdflush (or maybe it will, in which case we can just add it
back).

This is in preparation for getting rid of pdflush completely.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Jens Axboe
2009-03-17 09:38:40 +01:00
parent 6933c02e9c
commit a2a9537ac0
2 changed files with 22 additions and 3 deletions

View File

@@ -42,9 +42,21 @@ SYSCALL_DEFINE0(sync)
return 0;
}
static void do_sync_work(struct work_struct *work)
{
do_sync(0);
kfree(work);
}
void emergency_sync(void)
{
pdflush_operation(do_sync, 0);
struct work_struct *work;
work = kmalloc(sizeof(*work), GFP_ATOMIC);
if (work) {
INIT_WORK(work, do_sync_work);
schedule_work(work);
}
}
/*