Btrfs: fix a potential btrfs_bio leak on scrub fixups
authorIlya Dryomov <idryomov@gmail.com>
Fri, 4 Nov 2011 13:41:02 +0000 (09:41 -0400)
committerChris Mason <chris.mason@oracle.com>
Sun, 6 Nov 2011 08:11:29 +0000 (03:11 -0500)
In case we were able to map less than we wanted (length < PAGE_SIZE
clause is true) btrfs_bio is still allocated and we have to free it.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/scrub.c

index 562dad10dee9b894344abe65c5e7c6962d6ae112..ed11d3866afde2ccef62ab55f66374622cb649fe 100644 (file)
@@ -655,6 +655,7 @@ static void scrub_fixup(struct scrub_bio *sbio, int ix)
                       "scrub_fixup: btrfs_map_block failed us for %llu\n",
                       (unsigned long long)logical);
                WARN_ON(1);
+               kfree(bbio);
                return;
        }