Re: [PATCH 1/4] fs: Improve filesystem freezing handling

Jan Kara
2012-01-12T20:07:57Z

On Thu 12-01-12 12:53:35, Andreas Dilger wrote:
> On 2012-01-11, at 6:20 PM, Jan Kara wrote:
> > /**
> > + * sb_start_write - drop write access to a superblock
> > + * @sb: the super we wrote to
> > + *
> > + * Decrement number of writers to the filesystem and wake up possible
> > + * waiters wanting to freeze the filesystem.
> > + */
> > +void sb_end_write(struct super_block *sb)
> > +{
> > +#ifdef CONFIG_SMP
> > + this_cpu_dec(sb->s_writers);
> > +#else
> > + preempt_disable();
> > + sb->s_writers--;
> > + preempt_enable();
> > +#endif
> > + /*
> > + * Make sure s_writers are updated before we wake up waiters in
> > + * freeze_super().
> > + */
> > + smp_mb();
> > + if (waitqueue_active(&sb->s_writers_wait))
> > + wake_up(&sb->s_writers_wait);
> > + rwsem_release(&sb->s_writers_lock_map, 1, _RET_IP_);
> > +}
>
> Since this function is needed for calling __block_page_mkwrite(), which is
> EXPORT_SYMBOL(), both sb_start_write() and sb_end_write() themselves need
> to be EXPORT_SYMBOL().
Good point. Fixed. Thanks.

Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR