Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b57ac2c4 authored by Jan Kara's avatar Jan Kara Committed by Joel Becker
Browse files

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: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
parent 82e12644
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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;