/* Chances are we'll be called again, so go ahead and do readahead */
        path->reada = READA_FORWARD;
 
+       /*
+        * Unless we're going to uncompress the inline extent, no sleep would
+        * happen.
+        */
+       path->leave_spinning = 1;
+
        ret = btrfs_lookup_file_extent(NULL, root, path, objectid, start, 0);
        if (ret < 0) {
                err = ret;
                em->orig_block_len = em->len;
                em->orig_start = em->start;
                ptr = btrfs_file_extent_inline_start(item) + extent_offset;
+
+               btrfs_set_path_blocking(path);
                if (!PageUptodate(page)) {
                        if (btrfs_file_extent_compression(leaf, item) !=
                            BTRFS_COMPRESS_NONE) {