linux-hardened/fs/quota
Jan Kara 9d1ccbe70e quota: Use s_umount protection for quota operations
Writeback quota is protected by s_umount semaphore held for reading
because every writeback must be protected by that lock (grabbed either
by the generic writeback code or by quotactl handler). Getting next
available ID in quota file, querying quota state, setting quota
information, getting quota format are all quotactl operations protected
by s_umount semaphore held for reading grabbed in quotactl handler.

This also fixes lockdep splat about possible deadlock during filesystem
freezing where sync_filesystem() is called with page-faults already
blocked but sync_filesystem() calls into dquot_writeback_dquots() which
grabs dqonoff_mutex which ranks above i_mutex (vfs_load_quota_inode()
grabs i_mutex under dqonoff_mutex) which clearly ranks below page fault
freeze protection (e.g. via mmap_sem dependencies). The reported problem
is not a real deadlock possibility since during quota on we check
whether filesystem freezing is not in progress but still it is good to
have this fixed.

Reported-by: Ted Tso <tytso@mit.edu>
Reported-by: Eric Whitney <enwlinux@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
2016-11-24 15:27:16 +01:00
..
compat.c quota: split out compat_sys_quotactl support from quota.c 2010-03-05 00:20:25 +01:00
dquot.c quota: Use s_umount protection for quota operations 2016-11-24 15:27:16 +01:00
Kconfig rcu: Make SRCU optional by using CONFIG_SRCU 2015-01-06 11:04:29 -08:00
kqid.c fs/quota: kernel-doc warning fixes 2014-07-15 22:40:23 +02:00
Makefile userns: Implement struct kqid 2012-09-18 01:01:38 -07:00
netlink.c fs/quota: use nla_put_u64_64bit() 2016-04-26 12:00:48 -04:00
quota.c quota: Use s_umount protection for quota operations 2016-11-24 15:27:16 +01:00
quota_tree.c quota_v2: Implement get_next_id() for V2 quota format 2016-02-09 13:05:23 +01:00
quota_tree.h quota: Change quota error message to print out disk and function name 2010-07-21 16:05:58 +02:00
quota_v1.c quota: Store maximum space limit in bytes 2015-01-30 12:51:21 +01:00
quota_v2.c quota_v2: Implement get_next_id() for V2 quota format 2016-02-09 13:05:23 +01:00
quotaio_v1.h
quotaio_v2.h vfs: Add general support to enforce project quota limits 2015-03-18 21:55:08 +01:00