xfs
[Top] [All Lists]

[PATCH 14/25] ocfs2: Move OLQF_CLEAN flag out of generic quota flags

To: linux-fsdevel@xxxxxxxxxxxxxxx
Subject: [PATCH 14/25] ocfs2: Move OLQF_CLEAN flag out of generic quota flags
From: Jan Kara <jack@xxxxxxx>
Date: Thu, 18 Dec 2014 16:37:28 +0100
Cc: xfs@xxxxxxxxxxx, cluster-devel@xxxxxxxxxx, ocfs2-devel@xxxxxxxxxxxxxx, Jan Kara <jack@xxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1418917059-23870-1-git-send-email-jack@xxxxxxx>
References: <1418917059-23870-1-git-send-email-jack@xxxxxxx>
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@xxxxxxx>
---
 fs/ocfs2/quota.h       |  1 +
 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 {
 /* 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 */
diff --git a/fs/ocfs2/quota_local.c b/fs/ocfs2/quota_local.c
index 465223b7592e..89c0b2620814 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)
        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,
-- 
1.8.4.5

<Prev in Thread] Current Thread [Next in Thread>