Re: [PATCH 1/4] writeback: merely wakeup flusher thread if workallocation fails for WB_SYNC_NONE

From: Christoph Hellwig
Date: Fri Sep 11 2009 - 13:59:42 EST


> + /*
> + * WB_SYNC_NONE is opportunistic writeback. If this allocation fails,
> + * bdi_queue_work() will wake up the thread and flush old data. This
> + * should ensure some amount of progress in freeing memory.
> + */
> + if (wbc->sync_mode != WB_SYNC_ALL) {
> + struct bdi_work *w = bdi_alloc_work(wbc);
>
> + bdi_queue_work(wbc->bdi, w);
> + } else {
> + struct bdi_work work;
>
> + bdi_work_init(&work, wbc);
> + work.state |= WS_ONSTACK;
>
> + bdi_queue_work(wbc->bdi, &work);
> + bdi_wait_on_work_clear(&work);

That's even nice than my version, great.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/