• Paul Gortmaker's avatar
    hugetlb: make mm and fs code explicitly non-modular · 3e89e1c5
    Paul Gortmaker authored
    The Kconfig currently controlling compilation of this code is:
    
    config HUGETLBFS
            bool "HugeTLB file system support"
    
    ...meaning that it currently is not being built as a module by anyone.
    
    Lets remove the modular code that is essentially orphaned, so that when
    reading the driver there is no doubt it is builtin-only.
    
    Since module_init translates to device_initcall in the non-modular case,
    the init ordering gets moved to earlier levels when we use the more
    appropriate initcalls here.
    
    Originally I had the fs part and the mm part as separate commits, just
    by happenstance of the nature of how I detected these non-modular use
    cases.  But that can possibly introduce regressions if the patch merge
    ordering puts the fs part 1st -- as the 0-day testing reported a splat
    at mount time.
    
    Investigating with "initcall_debug" showed that the delta was
    init_hugetlbfs_fs being called _before_ hugetlb_init instead of after.  So
    both the fs change and the mm change are here together.
    
    In addition, it worked before due to luck of link order, since they were
    both in the same initcall category.  So we now have the fs part using
    fs_initcall, and the mm part using subsys_initcall, which puts it one
    bucket earlier.  It now passes the basic sanity test that failed in
    earlier 0-day testing.
    
    We delete the MODULE_LICENSE tag and capture that information at the top
    of the file alongside author comments, etc.
    
    We don't replace module.h with init.h since the file already has that.
    Also note that MODULE_ALIAS is a no-op for non-modular code.
    Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
    Reported-by: default avatarkernel test robot <ying.huang@linux.intel.com>
    Cc: Nadia Yvette Chambers <nyc@holomorphy.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Hillf Danton <hillf.zj@alibaba-inc.com>
    Acked-by: default avatarDavidlohr Bueso <dave@stgolabs.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    3e89e1c5
inode.c 34.3 KB