diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c index 0db856ceecc42c016749172fb3ae96005ed7aa98..d0ecfbd9cc9fc5e07a23173b0d1482d5eb9fb75d 100644 --- a/fs/btrfs/raid56.c +++ b/fs/btrfs/raid56.c @@ -1540,8 +1540,10 @@ static int full_stripe_write(struct btrfs_raid_bio *rbio) int ret; ret = alloc_rbio_parity_pages(rbio); - if (ret) + if (ret) { + __free_raid_bio(rbio); return ret; + } ret = lock_stripe_add(rbio); if (ret == 0)