Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspe...
[pandora-kernel.git] / fs / btrfs / extent_io.c
index 8dcfb77..3151386 100644 (file)
@@ -694,10 +694,8 @@ static void uncache_state(struct extent_state **cached_ptr)
 {
        if (cached_ptr && (*cached_ptr)) {
                struct extent_state *state = *cached_ptr;
-               if (state->state & (EXTENT_IOBITS | EXTENT_BOUNDARY)) {
-                       *cached_ptr = NULL;
-                       free_extent_state(state);
-               }
+               *cached_ptr = NULL;
+               free_extent_state(state);
        }
 }
 
@@ -1763,8 +1761,8 @@ static void end_bio_extent_readpage(struct bio *bio, int err)
                        prefetchw(&bvec->bv_page->flags);
 
                spin_lock(&tree->lock);
-               state = find_first_extent_bit_state(tree, start, 0);
-               if (state) {
+               state = find_first_extent_bit_state(tree, start, EXTENT_LOCKED);
+               if (state && state->start == start) {
                        /*
                         * take a reference on the state, unlock will drop
                         * the ref
@@ -2221,7 +2219,7 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
        unsigned long nr_written = 0;
 
        if (wbc->sync_mode == WB_SYNC_ALL)
-               write_flags = WRITE_SYNC_PLUG;
+               write_flags = WRITE_SYNC;
        else
                write_flags = WRITE;