unsigned i;
if (io->op.op.error) {
- bio_for_each_segment_all(bvec, bio, i)
+ bio_for_each_segment_all(bvec, bio, i) {
SetPageError(bvec->bv_page);
- set_bit(AS_EIO, &io->op.inode->v.i_mapping->flags);
+ mapping_set_error(bvec->bv_page->mapping, -EIO);
+ }
}
/*
if (ret)
return ret;
out:
- if (c->opts.journal_flush_disabled)
- return 0;
-
- ret = bch2_journal_flush_seq(&c->journal, inode->ei_journal_seq);
+ if (!c->opts.journal_flush_disabled)
+ ret = bch2_journal_flush_seq(&c->journal,
+ inode->ei_journal_seq);
ret2 = file_check_and_advance_wb_err(file);
return ret ?: ret2;