Re: [PATCH v2 3/4] fat: mark superblock as dirty less often

From: Artem Bityutskiy
Date: Sat Apr 14 2012 - 06:24:31 EST


Hi, thanks for feed-back,

On Sat, 2012-04-14 at 18:17 +0900, OGAWA Hirofumi wrote:
> Artem Bityutskiy <dedekind1@xxxxxxxxx> writes:
>
> > From: Artem Bityutskiy <artem.bityutskiy@xxxxxxxxxxxxxxx>
> >
> > This patch is a preparation for further changes. It touches few functions
> > in fatent.c and prevents them from marking the superblock as dirty
> > unnecessarily often. Namely, instead of marking it as dirty in the internal
> > tight loops - do it only once at the end of the functions. And instead of
> > marking it as dirty while holding the FAT table lock, do it outside the lock.
> >
> > The reason for this patch is that marking the superblock as dirty will soon
> > become a little bit heavier operation, so it is cleaner to do this only when it
> > is necessary.
>
> For it, please use local variable like,
>
>
> {
> int fsinfo_dirty = 0;
>
> while (1) {
> change free_clusters
> fsinfo_dirty = 1;
> }
>
> if (fsinfo_dirty)
> mark_fsinfo_dirty()
> }
>
> instead of dirty it always.

But could you please explain why do we need an extra variable? What is
the problem with doing all our FAT table changes and then marking the
FSINFO as dirty?

--
Best Regards,
Artem Bityutskiy

Attachment: signature.asc
Description: This is a digitally signed message part