ocfs2: Move OLQF_CLEAN flag out of generic quota flags
OLQF_CLEAN flag is used by OCFS2 on disk to recognize whether quota recovery is needed or not. We also somewhat abuse mem_dqinfo->dqi_flags to pass this flag around. Use private flags for this to avoid clashes with other quota flags / not pollute generic quota flag namespace. Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
c119c5b974
commit
96827adcc2
2 changed files with 6 additions and 5 deletions
|
@ -48,6 +48,7 @@ struct ocfs2_quota_recovery {
|
|||
/* In-memory structure with quota header information */
|
||||
struct ocfs2_mem_dqinfo {
|
||||
unsigned int dqi_type; /* Quota type this structure describes */
|
||||
unsigned int dqi_flags; /* Flags OLQF_* */
|
||||
unsigned int dqi_chunks; /* Number of chunks in local quota file */
|
||||
unsigned int dqi_blocks; /* Number of blocks allocated for local quota file */
|
||||
unsigned int dqi_syncms; /* How often should we sync with other nodes */
|
||||
|
|
|
@ -292,7 +292,7 @@ static void olq_update_info(struct buffer_head *bh, void *private)
|
|||
ldinfo = (struct ocfs2_local_disk_dqinfo *)(bh->b_data +
|
||||
OCFS2_LOCAL_INFO_OFF);
|
||||
spin_lock(&dq_data_lock);
|
||||
ldinfo->dqi_flags = cpu_to_le32(info->dqi_flags & DQF_MASK);
|
||||
ldinfo->dqi_flags = cpu_to_le32(oinfo->dqi_flags);
|
||||
ldinfo->dqi_chunks = cpu_to_le32(oinfo->dqi_chunks);
|
||||
ldinfo->dqi_blocks = cpu_to_le32(oinfo->dqi_blocks);
|
||||
spin_unlock(&dq_data_lock);
|
||||
|
@ -737,13 +737,13 @@ static int ocfs2_local_read_info(struct super_block *sb, int type)
|
|||
}
|
||||
ldinfo = (struct ocfs2_local_disk_dqinfo *)(bh->b_data +
|
||||
OCFS2_LOCAL_INFO_OFF);
|
||||
info->dqi_flags = le32_to_cpu(ldinfo->dqi_flags);
|
||||
oinfo->dqi_flags = le32_to_cpu(ldinfo->dqi_flags);
|
||||
oinfo->dqi_chunks = le32_to_cpu(ldinfo->dqi_chunks);
|
||||
oinfo->dqi_blocks = le32_to_cpu(ldinfo->dqi_blocks);
|
||||
oinfo->dqi_libh = bh;
|
||||
|
||||
/* We crashed when using local quota file? */
|
||||
if (!(info->dqi_flags & OLQF_CLEAN)) {
|
||||
if (!(oinfo->dqi_flags & OLQF_CLEAN)) {
|
||||
rec = OCFS2_SB(sb)->quota_rec;
|
||||
if (!rec) {
|
||||
rec = ocfs2_alloc_quota_recovery();
|
||||
|
@ -772,7 +772,7 @@ static int ocfs2_local_read_info(struct super_block *sb, int type)
|
|||
}
|
||||
|
||||
/* Now mark quota file as used */
|
||||
info->dqi_flags &= ~OLQF_CLEAN;
|
||||
oinfo->dqi_flags &= ~OLQF_CLEAN;
|
||||
status = ocfs2_modify_bh(lqinode, bh, olq_update_info, info);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
|
@ -857,7 +857,7 @@ static int ocfs2_local_free_info(struct super_block *sb, int type)
|
|||
goto out;
|
||||
|
||||
/* Mark local file as clean */
|
||||
info->dqi_flags |= OLQF_CLEAN;
|
||||
oinfo->dqi_flags |= OLQF_CLEAN;
|
||||
status = ocfs2_modify_bh(sb_dqopt(sb)->files[type],
|
||||
oinfo->dqi_libh,
|
||||
olq_update_info,
|
||||
|
|
Loading…
Reference in a new issue