- } else {
- remove_from_hash(mp, meta_hash(mp->mapping, mp->index));
- spin_unlock(&meta_lock);
-
- if (mp->page) {
- kunmap(mp->page);
- mp->data = 0;
- if (test_bit(META_dirty, &mp->flag))
- __write_metapage(mp);
- if (test_bit(META_sync, &mp->flag)) {
- sync_metapage(mp);
- clear_bit(META_sync, &mp->flag);
- }
-
- if (test_bit(META_discard, &mp->flag)) {
- lock_page(mp->page);
- block_invalidatepage(mp->page, 0);
- unlock_page(mp->page);
- }