diff options
author | Jan Kara <jack@suse.cz> | 2014-11-19 04:41:41 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2015-01-21 13:21:30 -0500 |
commit | 96827adcc2d0eed3fdf7f88e73a50a83b23def96 (patch) | |
tree | 3afae2acd6e3b0a0cfb8f7f166d437b3bf828fd1 /fs/ocfs2 | |
parent | c119c5b9749e4df5e6344b5d2ccd959dd403c959 (diff) |
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>
Diffstat (limited to 'fs/ocfs2')
-rw-r--r-- | fs/ocfs2/quota.h | 1 | ||||
-rw-r--r-- | fs/ocfs2/quota_local.c | 10 |
2 files changed, 6 insertions, 5 deletions
diff --git a/fs/ocfs2/quota.h b/fs/ocfs2/quota.h index 1eae330193a6..b6d51333ad02 100644 --- a/fs/ocfs2/quota.h +++ b/fs/ocfs2/quota.h | |||
@@ -48,6 +48,7 @@ struct ocfs2_quota_recovery { | |||
48 | /* In-memory structure with quota header information */ | 48 | /* In-memory structure with quota header information */ |
49 | struct ocfs2_mem_dqinfo { | 49 | struct ocfs2_mem_dqinfo { |
50 | unsigned int dqi_type; /* Quota type this structure describes */ | 50 | unsigned int dqi_type; /* Quota type this structure describes */ |
51 | unsigned int dqi_flags; /* Flags OLQF_* */ | ||
51 | unsigned int dqi_chunks; /* Number of chunks in local quota file */ | 52 | unsigned int dqi_chunks; /* Number of chunks in local quota file */ |
52 | unsigned int dqi_blocks; /* Number of blocks allocated for local quota file */ | 53 | unsigned int dqi_blocks; /* Number of blocks allocated for local quota file */ |
53 | unsigned int dqi_syncms; /* How often should we sync with other nodes */ | 54 | unsigned int dqi_syncms; /* How often should we sync with other nodes */ |
diff --git a/fs/ocfs2/quota_local.c b/fs/ocfs2/quota_local.c index 10b653930ee2..55f832f553cb 100644 --- a/fs/ocfs2/quota_local.c +++ b/fs/ocfs2/quota_local.c | |||
@@ -292,7 +292,7 @@ static void olq_update_info(struct buffer_head *bh, void *private) | |||
292 | ldinfo = (struct ocfs2_local_disk_dqinfo *)(bh->b_data + | 292 | ldinfo = (struct ocfs2_local_disk_dqinfo *)(bh->b_data + |
293 | OCFS2_LOCAL_INFO_OFF); | 293 | OCFS2_LOCAL_INFO_OFF); |
294 | spin_lock(&dq_data_lock); | 294 | spin_lock(&dq_data_lock); |
295 | ldinfo->dqi_flags = cpu_to_le32(info->dqi_flags & DQF_MASK); | 295 | ldinfo->dqi_flags = cpu_to_le32(oinfo->dqi_flags); |
296 | ldinfo->dqi_chunks = cpu_to_le32(oinfo->dqi_chunks); | 296 | ldinfo->dqi_chunks = cpu_to_le32(oinfo->dqi_chunks); |
297 | ldinfo->dqi_blocks = cpu_to_le32(oinfo->dqi_blocks); | 297 | ldinfo->dqi_blocks = cpu_to_le32(oinfo->dqi_blocks); |
298 | spin_unlock(&dq_data_lock); | 298 | spin_unlock(&dq_data_lock); |
@@ -737,13 +737,13 @@ static int ocfs2_local_read_info(struct super_block *sb, int type) | |||
737 | } | 737 | } |
738 | ldinfo = (struct ocfs2_local_disk_dqinfo *)(bh->b_data + | 738 | ldinfo = (struct ocfs2_local_disk_dqinfo *)(bh->b_data + |
739 | OCFS2_LOCAL_INFO_OFF); | 739 | OCFS2_LOCAL_INFO_OFF); |
740 | info->dqi_flags = le32_to_cpu(ldinfo->dqi_flags); | 740 | oinfo->dqi_flags = le32_to_cpu(ldinfo->dqi_flags); |
741 | oinfo->dqi_chunks = le32_to_cpu(ldinfo->dqi_chunks); | 741 | oinfo->dqi_chunks = le32_to_cpu(ldinfo->dqi_chunks); |
742 | oinfo->dqi_blocks = le32_to_cpu(ldinfo->dqi_blocks); | 742 | oinfo->dqi_blocks = le32_to_cpu(ldinfo->dqi_blocks); |
743 | oinfo->dqi_libh = bh; | 743 | oinfo->dqi_libh = bh; |
744 | 744 | ||
745 | /* We crashed when using local quota file? */ | 745 | /* We crashed when using local quota file? */ |
746 | if (!(info->dqi_flags & OLQF_CLEAN)) { | 746 | if (!(oinfo->dqi_flags & OLQF_CLEAN)) { |
747 | rec = OCFS2_SB(sb)->quota_rec; | 747 | rec = OCFS2_SB(sb)->quota_rec; |
748 | if (!rec) { | 748 | if (!rec) { |
749 | rec = ocfs2_alloc_quota_recovery(); | 749 | rec = ocfs2_alloc_quota_recovery(); |
@@ -772,7 +772,7 @@ static int ocfs2_local_read_info(struct super_block *sb, int type) | |||
772 | } | 772 | } |
773 | 773 | ||
774 | /* Now mark quota file as used */ | 774 | /* Now mark quota file as used */ |
775 | info->dqi_flags &= ~OLQF_CLEAN; | 775 | oinfo->dqi_flags &= ~OLQF_CLEAN; |
776 | status = ocfs2_modify_bh(lqinode, bh, olq_update_info, info); | 776 | status = ocfs2_modify_bh(lqinode, bh, olq_update_info, info); |
777 | if (status < 0) { | 777 | if (status < 0) { |
778 | mlog_errno(status); | 778 | mlog_errno(status); |
@@ -857,7 +857,7 @@ static int ocfs2_local_free_info(struct super_block *sb, int type) | |||
857 | goto out; | 857 | goto out; |
858 | 858 | ||
859 | /* Mark local file as clean */ | 859 | /* Mark local file as clean */ |
860 | info->dqi_flags |= OLQF_CLEAN; | 860 | oinfo->dqi_flags |= OLQF_CLEAN; |
861 | status = ocfs2_modify_bh(sb_dqopt(sb)->files[type], | 861 | status = ocfs2_modify_bh(sb_dqopt(sb)->files[type], |
862 | oinfo->dqi_libh, | 862 | oinfo->dqi_libh, |
863 | olq_update_info, | 863 | olq_update_info, |