• Michal Hocko's avatar
    btrfs: use __GFP_NOFAIL in alloc_btrfs_bio · 277fb5fc
    Michal Hocko authored
    alloc_btrfs_bio relies on GFP_NOFS allocation when committing the
    transaction but this allocation context is rather weak wrt. reclaim
    capabilities. The page allocator currently tries hard to not fail these
    allocations if they are small (<=PAGE_ALLOC_COSTLY_ORDER) but it can
    still fail if the _current_ process is the OOM killer victim. Moreover
    there is an attempt to move away from the default no-fail behavior and
    allow these allocation to fail more eagerly. This would lead to:
    
    [   37.928625] kernel BUG at fs/btrfs/extent_io.c:4045
    
    which is clearly undesirable and the nofail behavior should be explicit
    if the allocation failure cannot be tolerated.
    Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
    Signed-off-by: default avatarChris Mason <clm@fb.com>
    277fb5fc
volumes.c 179 KB