• J
    Btrfs: actually limit the size of delalloc range · 573aecaf
    Josef Bacik 提交于
    So forever we have had this thing to limit the amount of delalloc pages we'll
    setup to be written out to 128mb.  This is because we have to lock all the pages
    in this range, so anything above this gets a bit unweildly, and also without a
    limit we'll happily allocate gigantic chunks of disk space.  Turns out our check
    for this wasn't quite right, we wouldn't actually limit the chunk we wanted to
    write out, we'd just stop looking for more space after we went over the limit.
    So if you do a giant 20gb dd on my box with lots of ram I could get 2gig
    extents.  This is fine normally, except when you go to relocate these extents
    and we can't find enough space to relocate these moster extents, since we have
    to be able to allocate exactly the same sized extent to move it around.  So fix
    this by actually enforcing the limit.  With this patch I'm no longer seeing
    giant 1.5gb extents.  Thanks,
    Signed-off-by: NJosef Bacik <jbacik@fusionio.com>
    Signed-off-by: NChris Mason <chris.mason@fusionio.com>
    573aecaf
extent_io.c 130.5 KB