quota: Make quota code not call tty layer with dqptr_sem held
authorJan Kara <jack@suse.cz>
Tue, 14 Feb 2012 12:28:01 +0000 (13:28 +0100)
committerJan Kara <jack@suse.cz>
Wed, 29 Feb 2012 20:53:47 +0000 (21:53 +0100)
commitbf097aaff45eba2244ca3a61e531ec6f2801f6b2
tree3acf144dfe272c81a54744024b8d7df53855acce
parentd5e2cf07c388dbd06579ab39672e1bd8b9754e65
quota: Make quota code not call tty layer with dqptr_sem held

dqptr_sem can be called from slab reclaim. tty layer uses GFP_KERNEL mask for
allocation so it can end up calling slab reclaim. Given quota code can call
into tty layer to print warning this creates possibility for lock inversion
between tty->atomic_write_lock and dqptr_sem.

Using direct printing of warnings from quota layer is obsolete but since it's
easy enough to change quota code to not hold any locks when printing warnings,
let's just do it. It seems like a good thing to do even when we use netlink
layer to transmit warnings to userspace.

Reported-by: Markus <M4rkusXXL@web.de>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/quota/dquot.c