• Rusty Russell's avatar
    module: wait when loading a module which is currently initializing. · 9bb9c3be
    Rusty Russell authored
    The original module-init-tools module loader used a fnctl lock on the
    .ko file to avoid attempts to simultaneously load a module.
    Unfortunately, you can't get an exclusive fcntl lock on a read-only
    fd, making this not work for read-only mounted filesystems.
    module-init-tools has a hacky sleep-and-loop for this now.
    
    It's not that hard to wait in the kernel, and only return -EEXIST once
    the first module has finished loading (or continue loading the module
    if the first one failed to initialize for some reason).  It's also
    consistent with what we do for dependent modules which are still loading.
    Suggested-by: default avatarLucas De Marchi <lucas.demarchi@profusion.mobi>
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    9bb9c3be
module.c 90 KB