• David Howells's avatar
    ovl: Warn on copy up if a process has a R/O fd open to the lower file · fb5bb2c3
    David Howells authored
    Print a warning when overlayfs copies up a file if the process that
    triggered the copy up has a R/O fd open to the lower file being copied up.
    
    This can help catch applications that do things like the following:
    
    	fd1 = open("foo", O_RDONLY);
    	fd2 = open("foo", O_RDWR);
    
    where they expect fd1 and fd2 to refer to the same file - which will no
    longer be the case post-copy up.
    
    With this patch, the following commands:
    
    	bash 5</mnt/a/foo128
    	6<>/mnt/a/foo128
    
    assuming /mnt/a/foo128 to be an un-copied up file on an overlay will
    produce the following warning in the kernel log:
    
    	overlayfs: Copying up foo129, but open R/O on fd 5 which will cease
    	to be coherent [pid=3818 bash]
    
    This is enabled by setting:
    
    	/sys/module/overlay/parameters/check_copy_up
    
    to 1.
    
    The warnings are ratelimited and are also limited to one warning per file -
    assuming the copy up completes in each case.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    fb5bb2c3
copy_up.c 10 KB