quota: Fix possible dq_flags corruption
authorAndrew Perepechko <andrew.perepechko@sun.com>
Mon, 12 Apr 2010 18:16:50 +0000 (22:16 +0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 26 Apr 2010 14:41:29 +0000 (07:41 -0700)
commitb297f8be79425ac8cadad84908e7088a434f39fa
tree6cce18393a3a095c6aa6cc61e5f3e51bd5736217
parent2548bd8d60f4c689d908adac6f805878b7eda904
quota: Fix possible dq_flags corruption

commit 08261673cb6dc638c39f44d69b76fffb57b92a8b upstream.

dq_flags are modified non-atomically in do_set_dqblk via __set_bit calls and
atomically for example in mark_dquot_dirty or clear_dquot_dirty.  Hence a
change done by an atomic operation can be overwritten by a change done by a
non-atomic one. Fix the problem by using atomic bitops even in do_set_dqblk.

Signed-off-by: Andrew Perepechko <andrew.perepechko@sun.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/quota/dquot.c