Messages in this thread |  | | | Date | Mon, 25 May 2009 10:42:25 +0200 | | From | Jan Kara <> | | Subject | Re: [PATCH 03/12] writeback: move dirty inodes from super_block to backing_dev_info |
| |
On Mon 25-05-09 09:34:38, Jens Axboe wrote: > This is a first step at introducing per-bdi flusher threads. We should > have no change in behaviour, although sb_has_dirty_inodes() is now > ridiculously expensive, as there's no easy way to answer that question. > Not a huge problem, since it'll be deleted in subsequent patches. > > Signed-off-by: Jens Axboe <jens.axboe@oracle.com> > --- > fs/fs-writeback.c | 196 +++++++++++++++++++++++++++--------------- > fs/super.c | 3 - > include/linux/backing-dev.h | 9 ++ > include/linux/fs.h | 5 +- > mm/backing-dev.c | 30 +++++++ > mm/page-writeback.c | 11 +-- > 6 files changed, 170 insertions(+), 84 deletions(-) ... > @@ -225,9 +231,23 @@ int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev) > } > EXPORT_SYMBOL(bdi_register_dev); > > +static void bdi_remove_from_list(struct backing_dev_info *bdi) > +{ > + mutex_lock(&bdi_lock); > + list_del_rcu(&bdi->bdi_list); > + mutex_unlock(&bdi_lock); > + > + /* > + * In case the bdi is freed right after unregister, we need to > + * make sure any RCU sections have exited > + */ > + synchronize_rcu(); > +} > + Is this RCU thing still valid? And in bdi_register_dev() as well...
Honza
-- Jan Kara <jack@suse.cz> SUSE Labs, CR
|  |