Files
linux-legacy/include/linux
Dmitry Monakhov c169e13a66 quota: decouple fs reserved space from quota reservation
commit fd8fbfc1709822bd94247c5b2ab15a5f5041e103 upstream.

Currently inode_reservation is managed by fs itself and this
reservation is transfered on dquot_transfer(). This means what
inode_reservation must always be in sync with
dquot->dq_dqb.dqb_rsvspace. Otherwise dquot_transfer() will result
in incorrect quota(WARN_ON in dquot_claim_reserved_space() will be
triggered)
This is not easy because of complex locking order issues
for example http://bugzilla.kernel.org/show_bug.cgi?id=14739

The patch introduce quota reservation field for each fs-inode
(fs specific inode is used in order to prevent bloating generic
vfs inode). This reservation is managed by quota code internally
similar to i_blocks/i_bytes and may not be always in sync with
internal fs reservation.

Also perform some code rearrangement:
- Unify dquot_reserve_space() and dquot_reserve_space()
- Unify dquot_release_reserved_space() and dquot_free_space()
- Also this patch add missing warning update to release_rsv()
  dquot_release_reserved_space() must call flush_warnings() as
  dquot_free_space() does.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-01-06 14:26:52 -08:00
..
2009-06-18 08:46:47 +10:00
2009-06-30 18:56:00 -07:00
2009-07-12 12:22:34 -07:00
2009-06-30 18:55:58 -07:00
2009-07-29 19:10:35 -07:00
2009-07-12 12:22:34 -07:00
2009-07-12 13:02:10 -07:00
2009-06-22 10:12:30 +01:00
2009-07-08 09:18:05 -07:00
2009-06-24 08:17:04 -04:00
2009-06-30 18:56:00 -07:00
2009-06-30 20:12:24 +02:00
2009-06-18 13:04:05 -07:00
2009-07-12 12:22:34 -07:00
2009-06-29 08:59:10 +10:00
2009-06-18 13:03:57 -07:00
2009-07-31 08:55:48 +02:00
2009-06-18 13:03:56 -07:00
2009-06-22 10:12:35 +01:00
2009-06-23 20:21:39 +01:00
2009-07-30 16:03:45 +09:30
2009-07-28 21:07:09 -04:00
2009-07-08 09:31:56 -07:00
2009-06-18 13:03:57 -07:00
2009-06-17 18:02:11 -07:00
2009-06-17 18:02:11 -07:00
2009-06-17 12:24:34 -07:00
2009-08-12 08:21:39 -07:00
2009-06-17 12:24:34 -07:00
2009-06-17 18:02:11 -07:00
2009-06-29 12:14:51 -07:00
2009-06-30 18:55:59 -07:00
2009-06-18 13:04:04 -07:00
2009-07-29 19:10:36 -07:00
2009-07-12 12:22:34 -07:00
2009-06-24 08:17:06 -04:00
2009-06-24 08:17:06 -04:00
2009-12-08 10:22:01 -08:00
2009-06-23 12:50:05 -07:00
2009-07-06 13:57:03 -07:00
2009-10-05 09:32:34 -07:00
2009-07-12 15:16:39 -07:00