md/bitmap: improve handling of 'allclean'.
authorNeilBrown <neilb@suse.de>
Wed, 21 Sep 2011 05:37:46 +0000 (15:37 +1000)
committerNeilBrown <neilb@suse.de>
Wed, 21 Sep 2011 05:37:46 +0000 (15:37 +1000)
commit2585f3ef8c7fffe750ef1feb2775023716d799a8
tree3faccf1f22eb01bea55f49926a913446134df1d2
parent5a537df44d52331a3d2792ca21a296959bd2ac3a
md/bitmap: improve handling of 'allclean'.

The 'allclean' flag is used to cache the fact that there is nothing to
do, so we can avoid waking up and scanning the bitmap regularly.

The two sorts of pages that might need the attention of the bitmap
daemon are BITMAP_PAGE_PENDING and BITMAP_PAGE_NEEDWRITE pages.

So make sure allclean reflects exactly when there are none of those.
So:
  set it before scanning all pages with either bit set.
  clear it whenever these bits are set
  clear it when we desire not to clear one of these bits.
  don't clear it any other time.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/bitmap.c