]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/fs-io.c
Update bcachefs sources to 454bd4f82d bcachefs: Fix for the stripes mark path and gc
[bcachefs-tools-debian] / libbcachefs / fs-io.c
index b2ea783fe38afc29855b47eca4803b84cf25e9f3..7133482eeab6b1f75db098c5701e8cd8564aa4b6 100644 (file)
@@ -1189,9 +1189,10 @@ static void bch2_writepage_io_done(struct closure *cl)
        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);
+               }
        }
 
        /*
@@ -2079,10 +2080,9 @@ int bch2_fsync(struct file *file, loff_t start, loff_t end, int datasync)
        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;