Jan Kara
2015-Jan-14 18:27 UTC
[Ocfs2-devel] [PATCH 1/4] quota: Don't store flags for v2 quota format
Currently, v2 quota format blindly stored flags from in-memory dqinfo on disk, although there are no flags supported. Since it is stupid to store flags which have no effect, just store 0 unconditionally and don't bother loading it from disk. Note that userspace could have stored some flags there via Q_SETINFO quotactl and then later read them (although flags have no effect) but I'm pretty sure noone does that (most definitely quota-tools don't and quota interface doesn't have too much other users). Signed-off-by: Jan Kara <jack at suse.cz> --- fs/quota/quota_v2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/quota/quota_v2.c b/fs/quota/quota_v2.c index 02751ec695c5..b291602e1193 100644 --- a/fs/quota/quota_v2.c +++ b/fs/quota/quota_v2.c @@ -126,7 +126,8 @@ static int v2_read_file_info(struct super_block *sb, int type) } info->dqi_bgrace = le32_to_cpu(dinfo.dqi_bgrace); info->dqi_igrace = le32_to_cpu(dinfo.dqi_igrace); - info->dqi_flags = le32_to_cpu(dinfo.dqi_flags); + /* No flags currently supported */ + info->dqi_flags = le32_to_cpu(0); qinfo->dqi_sb = sb; qinfo->dqi_type = type; qinfo->dqi_blocks = le32_to_cpu(dinfo.dqi_blocks); @@ -157,7 +158,8 @@ static int v2_write_file_info(struct super_block *sb, int type) info->dqi_flags &= ~DQF_INFO_DIRTY; dinfo.dqi_bgrace = cpu_to_le32(info->dqi_bgrace); dinfo.dqi_igrace = cpu_to_le32(info->dqi_igrace); - dinfo.dqi_flags = cpu_to_le32(info->dqi_flags & DQF_MASK); + /* No flags currently supported */ + dinfo.dqi_flags = 0; spin_unlock(&dq_data_lock); dinfo.dqi_blocks = cpu_to_le32(qinfo->dqi_blocks); dinfo.dqi_free_blk = cpu_to_le32(qinfo->dqi_free_blk); -- 2.1.2
Christoph Hellwig
2015-Jan-15 09:40 UTC
[Ocfs2-devel] [PATCH 1/4] quota: Don't store flags for v2 quota format
On Wed, Jan 14, 2015 at 07:27:08PM +0100, Jan Kara wrote:> Currently, v2 quota format blindly stored flags from in-memory dqinfo on > disk, although there are no flags supported. Since it is stupid to store > flags which have no effect, just store 0 unconditionally and don't > bother loading it from disk. > > Note that userspace could have stored some flags there via Q_SETINFO > quotactl and then later read them (although flags have no effect) but > I'm pretty sure noone does that (most definitely quota-tools don't and > quota interface doesn't have too much other users).What about future proofing? Current kernels can store flags on disk, so the best is to reserve the currently (and possibly previously) assigned values, and mask them out when reading from disk.