btrfs: clear extent buffer uptodate when we fail to write it
[sfrench/cifs-2.6.git] / fs / btrfs / extent_io.c
index 4e03a6d3aa324be2d0ff259e256e5d9956b35fbf..dcdb97d9205dfe50810dc7fe1158fa60b4095ed5 100644 (file)
@@ -4313,6 +4313,12 @@ static void set_btree_ioerr(struct page *page, struct extent_buffer *eb)
        if (test_and_set_bit(EXTENT_BUFFER_WRITE_ERR, &eb->bflags))
                return;
 
+       /*
+        * A read may stumble upon this buffer later, make sure that it gets an
+        * error and knows there was an error.
+        */
+       clear_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags);
+
        /*
         * If we error out, we should add back the dirty_metadata_bytes
         * to make it consistent.