On Wed, Dec 11, 2019 at 6:39 PM Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx> wrote: > > Friendly ping... Sorry for the delay. This looks good to me. I will apply it to md-next. Song > > On 2019/12/7 11:00, liuzhiqiang (I) wrote: > > > > In md_bitmap_unplug, bitmap->storage.filemap is double checked. > > > > In md_bitmap_daemon_work, bitmap->storage.filemap should be checked > > before reference. > > > > Signed-off-by: Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx> > > --- > > drivers/md/md-bitmap.c | 5 ++--- > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c > > index 3ad18246fcb3..9860062bdc1e 100644 > > --- a/drivers/md/md-bitmap.c > > +++ b/drivers/md/md-bitmap.c > > @@ -1019,8 +1019,6 @@ void md_bitmap_unplug(struct bitmap *bitmap) > > /* look at each page to see if there are any set bits that need to be > > * flushed out to disk */ > > for (i = 0; i < bitmap->storage.file_pages; i++) { > > - if (!bitmap->storage.filemap) > > - return; > > dirty = test_and_clear_page_attr(bitmap, i, BITMAP_PAGE_DIRTY); > > need_write = test_and_clear_page_attr(bitmap, i, > > BITMAP_PAGE_NEEDWRITE); > > @@ -1338,7 +1336,8 @@ void md_bitmap_daemon_work(struct mddev *mddev) > > BITMAP_PAGE_DIRTY)) > > /* bitmap_unplug will handle the rest */ > > break; > > - if (test_and_clear_page_attr(bitmap, j, > > + if (bitmap->storage.filemap && > > + test_and_clear_page_attr(bitmap, j, > > BITMAP_PAGE_NEEDWRITE)) { > > write_page(bitmap, bitmap->storage.filemap[j], 0); > > } > > >