diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 3668048e16f8fa835c3ffff9ed85998ee201ec58..8ea7610fbaf3eb182321951f96f3fc1c2b498a68 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -709,6 +709,18 @@ static noinline int submit_compressed_extents(struct inode *inode, unlock_extent(io_tree, async_extent->start, async_extent->start + async_extent->ram_size - 1); + + /* + * we need to redirty the pages if we decide to + * fallback to uncompressed IO, otherwise we + * will not submit these pages down to lower + * layers. + */ + extent_range_redirty_for_io(inode, + async_extent->start, + async_extent->start + + async_extent->ram_size - 1); + goto retry; } goto out_free;