ocfs2: Make global quota files blocksize aligned
Change i_size of global quota files so that it always remains aligned to block size. This is mainly because the end of quota block may contain checksum (if checksumming is enabled) and it's a bit awkward for it to be "outside" of quota file (and it makes life harder for ocfs2-tools). Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
Родитель
82e12644cf
Коммит
b57ac2c43e
|
@ -211,14 +211,17 @@ ssize_t ocfs2_quota_write(struct super_block *sb, int type,
|
|||
|
||||
mutex_lock_nested(&gqinode->i_mutex, I_MUTEX_QUOTA);
|
||||
if (gqinode->i_size < off + len) {
|
||||
loff_t rounded_end =
|
||||
ocfs2_align_bytes_to_blocks(sb, off + len);
|
||||
|
||||
down_write(&OCFS2_I(gqinode)->ip_alloc_sem);
|
||||
err = ocfs2_extend_no_holes(gqinode, off + len, off);
|
||||
err = ocfs2_extend_no_holes(gqinode, rounded_end, off);
|
||||
up_write(&OCFS2_I(gqinode)->ip_alloc_sem);
|
||||
if (err < 0)
|
||||
goto out;
|
||||
err = ocfs2_simple_size_update(gqinode,
|
||||
oinfo->dqi_gqi_bh,
|
||||
off + len);
|
||||
rounded_end);
|
||||
if (err < 0)
|
||||
goto out;
|
||||
new = 1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче