• Mike Kravetz's avatar
    mm/hugetlb: add region_del() to delete a specific range of entries · feba16e2
    Mike Kravetz authored
    fallocate hole punch will want to remove a specific range of pages.  The
    existing region_truncate() routine deletes all region/reserve map
    entries after a specified offset.  region_del() will provide this same
    functionality if the end of region is specified as LONG_MAX.  Hence,
    region_del() can replace region_truncate().
    
    Unlike region_truncate(), region_del() can return an error in the rare
    case where it can not allocate memory for a region descriptor.  This
    ONLY happens in the case where an existing region must be split.
    Current callers passing LONG_MAX as end of range will never experience
    this error and do not need to deal with error handling.  Future callers
    of region_del() (such as fallocate hole punch) will need to handle this
    error.
    Signed-off-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
    Reviewed-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Acked-by: default avatarHillf Danton <hillf.zj@alibaba-inc.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Michal Hocko <mhocko@suse.cz>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    feba16e2
hugetlb.c 112 KB