在 2009-01-06二的 10:39 +0100,Jan Kara写道:
On Tue 06-01-09 10:35:29, Jan Kara wrote:
quoted
On Mon 05-01-09 20:40:55, Mingming Cao wrote:
quoted
ext4: quota reservation for delayed allocation
Uses quota reservation/claim/release to handle quota properly for delayed
allocation in the three steps: 1) quotas are reserved when data being copied
to cache when block allocation is defered 2) when new blocks are allocated.
reserved quotas are converted to the real allocated quota, 2) over-booked
quotas for metadata blocks are released back.
Signed-off-by: Mingming Cao <redacted>
The patch looks fine as far as I can tell :). But I'm not to familiar
with the code so I won't add my Acked-by...
On a second thought:
quoted
quoted
+unsigned long long ext4_get_reserved_space(struct inode *inode)
+{
+ unsigned long long total;
+
+ spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
+ total = EXT4_I(inode)->i_reserved_data_blocks +
+ EXT4_I(inode)->i_reserved_meta_blocks;
+ spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
+
+ return total;
+}
Shouldn't we return here (total << inode->i_blksize)? Quota expects
bytes as output...
This is updated ext4 part to return number of bytes reserved as output.
Thanks,
Mingming