• Lorenzo Stoakes's avatar
    mm: drop the assumption that VM_SHARED always implies writable · e8e17ee9
    Lorenzo Stoakes authored
    Patch series "permit write-sealed memfd read-only shared mappings", v4.
    
    The man page for fcntl() describing memfd file seals states the following
    about F_SEAL_WRITE:-
    
        Furthermore, trying to create new shared, writable memory-mappings via
        mmap(2) will also fail with EPERM.
    
    With emphasis on 'writable'.  In turns out in fact that currently the
    kernel simply disallows all new shared memory mappings for a memfd with
    F_SEAL_WRITE applied, rendering this documentation inaccurate.
    
    This matters because users are therefore unable to obtain a shared mapping
    to a memfd after write sealing altogether, which limits their usefulness. 
    This was reported in the discussion thread [1] originating from a bug
    report [2].
    
    This is a product of both using the struct address_space->i_mmap_writable
    atomic counter to determine whether writing may be permitted, and the
    kernel adjusting this counter when any VM_SHARED mapping is performed and
    more generally i...
    e8e17ee9
madvise.c 38.4 KB