Re: [PATCH 4/7] writeback: use RCU to protect bdi_list

Minchan Kim
2009-09-14T11:10:20Z

On Mon, 14 Sep 2009 11:36:31 +0200
Jens Axboe <jens.axboe@oracle.com> wrote:

> Now that bdi_writeback_all() no longer handles integrity writeback,
> it doesn't have to block anymore. This means that we can switch
> bdi_list reader side protection to RCU.
>
> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
> ---
> fs/fs-writeback.c | 4 +-
> include/linux/backing-dev.h | 1 +
> mm/backing-dev.c | 76 +++++++++++++++++++++++++++++++------------
> mm/page-writeback.c | 8 ++--
> 4 files changed, 62 insertions(+), 27 deletions(-)
>
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index 5d4bd1c..d7592c7 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -849,7 +849,7 @@ static void bdi_writeback_all(struct writeback_control *wbc)
>
> WARN_ON(wbc->sync_mode == WB_SYNC_ALL);
>
> - spin_lock(&bdi_lock);
> + rcu_read_lock();
>
> list_for_each_entry(bdi, &bdi_list, bdi_list) {

list_for_each_entry_rcu?

--
Kind regards,
Minchan Kim