• Hugh Dickins's avatar
    huge tmpfs: shmem_is_huge(vma, inode, index) · 5e6e5a12
    Hugh Dickins authored
    Extend shmem_huge_enabled(vma) to shmem_is_huge(vma, inode, index), so
    that a consistent set of checks can be applied, even when the inode is
    accessed through read/write syscalls (with NULL vma) instead of mmaps (the
    index argument is seldom of interest, but required by mount option
    "huge=within_size").  Clean up and rearrange the checks a little.
    
    This then replaces the checks which shmem_fault() and shmem_getpage_gfp()
    were making, and eliminates the SGP_HUGE and SGP_NOHUGE modes.
    
    Replace a couple of 0s by explicit SHMEM_HUGE_NEVERs; and replace the
    obscure !shmem_mapping() symlink check by explicit S_ISLNK() - nothing
    else needs that symlink check, so leave it there in shmem_getpage_gfp().
    
    Link: https://lkml.kernel.org/r/23a77889-2ddc-b030-75cd-44ca27fd4d1@google.comSigned-off-by: default avatarHugh Dickins <hughd@google.com>
    Reviewed-by: default avatarYang Shi <shy828301@gmail.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Miaohe Lin <linmiaohe@huawei.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    5e6e5a12
shmem.c 108 KB