> + /* > + * 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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html