UPSTREAM: writeback: eliminate work item allocation in bd_start_writeback()

Handle start-all writeback like we do periodic or kupdate
style writeback - by marking the bdi_writeback as needing a full
flush, and simply waking the thread. This eliminates the need to
allocate and queue a specific work item just for this purpose.

After this change, we truly only ever have one of them running at
any point in time. We mark the need to start all flushes, and the
writeback thread will clear it once it has processed the request.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
(cherry picked from commit 85009b4f5f0399669a44f07cb9a5622c0e71d419)
Signed-off-by: Ke Wu <mikewu@google.com>

BUG=b:136020425
TEST=trybot

Change-Id: Id110d941e39a395e2bbbf10caa3d8e6a91d55307
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1752924
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: John Sperbeck <jsperbeck@google.com>
Reviewed-by: Vaibhav Rustagi <vaibhavrustagi@google.com>
Commit-Queue: Ke Wu <mikewu@google.com>
Tested-by: Ke Wu <mikewu@google.com>
4 files changed