Reported-by: syzbot+e94d98936a0ed08bde43@syzkaller.appspotmail.com
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
 {
        CLST end, i, zone_len, zlen;
        struct wnd_bitmap *wnd = &sbi->used.bitmap;
+       bool dirty = false;
 
        down_write_nested(&wnd->rw_lock, BITMAP_MUTEX_CLUSTERS);
        if (!wnd_is_used(wnd, lcn, len)) {
-               ntfs_set_state(sbi, NTFS_DIRTY_ERROR);
+               /* mark volume as dirty out of wnd->rw_lock */
+               dirty = true;
 
                end = lcn + len;
                len = 0;
 
 out:
        up_write(&wnd->rw_lock);
+       if (dirty)
+               ntfs_set_state(sbi, NTFS_DIRTY_ERROR);
 }
 
 /*