linux/fs/fuse
Miklos Szeredi c55a01d360 fuse: avoid scheduling while atomic
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 58bda1da4b "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: Richard Sharpe <realrichardsharpe@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Cc: <stable@vger.kernel.org> # v3.15+
2014-07-07 15:28:51 +02:00
..
control.c fuse: add __exit to fuse_ctl_cleanup 2014-04-28 14:19:21 +02:00
cuse.c Nothing major: the stricter permissions checking for sysfs broke 2014-04-06 09:38:07 -07:00
dev.c fuse: avoid scheduling while atomic 2014-07-07 15:28:51 +02:00
dir.c fuse: ignore entry-timeout on LOOKUP_REVAL 2014-07-07 15:28:51 +02:00
file.c fuse: allow ctime flushing to userspace 2014-04-28 14:19:24 +02:00
fuse_i.h fuse: add renameat2 support 2014-04-28 16:43:44 +02:00
inode.c fuse: handle large user and group ID 2014-07-07 15:28:51 +02:00
Kconfig fuse: Move CUSE Kconfig entry from fs/Kconfig into fs/fuse/Kconfig 2013-01-17 13:08:45 +01:00
Makefile CUSE: implement CUSE - Character device in Userspace 2009-06-09 11:24:11 +02:00