• Miklos Szeredi's avatar
    fuse: avoid scheduling while atomic · c55a01d3
    Miklos Szeredi authored
    As reported by Richard Sharpe, an attempt to use fuse_notify_inval_entry()
    triggers complains about scheduling while atomic:
    
      BUG: scheduling while atomic: fuse.hf/13976/0x10000001
    
    This happens because fuse_notify_inval_entry() attempts to allocate memory
    with GFP_KERNEL, holding "struct fuse_copy_state" mapped by kmap_atomic().
    
    Introduced by commit 58bda1da "fuse/dev: use atomic maps"
    
    Fix by moving the map/unmap to just cover the actual memcpy operation.
    
    Original patch from Maxim Patlasov <mpatlasov@parallels.com>
    Reported-by: default avatarRichard Sharpe <realrichardsharpe@gmail.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
    Cc: <stable@vger.kernel.org> # v3.15+
    c55a01d3
dev.c 48.7 KB