[PATCH] quota: move qbtos and stoqb to header file

From: Yangtao Li
Date: Fri Apr 14 2023 - 12:05:10 EST


qbtos() and stoqb() are defined repeatedly in many files,
let's move it to the header file.

Signed-off-by: Yangtao Li <frank.li@xxxxxxxx>
---
fs/quota/quota.c | 10 ----------
fs/quota/quota_v1.c | 27 +++++++--------------------
fs/quota/quota_v2.c | 31 +++++++++----------------------
include/linux/quota.h | 10 ++++++++++
4 files changed, 26 insertions(+), 52 deletions(-)

diff --git a/fs/quota/quota.c b/fs/quota/quota.c
index 052f143e2e0e..094c2844ede3 100644
--- a/fs/quota/quota.c
+++ b/fs/quota/quota.c
@@ -174,16 +174,6 @@ static int quota_setinfo(struct super_block *sb, int type, void __user *addr)
return sb->s_qcop->set_info(sb, type, &qinfo);
}

-static inline qsize_t qbtos(qsize_t blocks)
-{
- return blocks << QIF_DQBLKSIZE_BITS;
-}
-
-static inline qsize_t stoqb(qsize_t space)
-{
- return (space + QIF_DQBLKSIZE - 1) >> QIF_DQBLKSIZE_BITS;
-}
-
static void copy_to_if_dqblk(struct if_dqblk *dst, struct qc_dqblk *src)
{
memset(dst, 0, sizeof(*dst));
diff --git a/fs/quota/quota_v1.c b/fs/quota/quota_v1.c
index cd92e5fa0062..309df78f1c22 100644
--- a/fs/quota/quota_v1.c
+++ b/fs/quota/quota_v1.c
@@ -16,27 +16,14 @@ MODULE_AUTHOR("Jan Kara");
MODULE_DESCRIPTION("Old quota format support");
MODULE_LICENSE("GPL");

-#define QUOTABLOCK_BITS 10
-#define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS)
-
-static inline qsize_t v1_stoqb(qsize_t space)
-{
- return (space + QUOTABLOCK_SIZE - 1) >> QUOTABLOCK_BITS;
-}
-
-static inline qsize_t v1_qbtos(qsize_t blocks)
-{
- return blocks << QUOTABLOCK_BITS;
-}
-
static void v1_disk2mem_dqblk(struct mem_dqblk *m, struct v1_disk_dqblk *d)
{
m->dqb_ihardlimit = d->dqb_ihardlimit;
m->dqb_isoftlimit = d->dqb_isoftlimit;
m->dqb_curinodes = d->dqb_curinodes;
- m->dqb_bhardlimit = v1_qbtos(d->dqb_bhardlimit);
- m->dqb_bsoftlimit = v1_qbtos(d->dqb_bsoftlimit);
- m->dqb_curspace = v1_qbtos(d->dqb_curblocks);
+ m->dqb_bhardlimit = qbtos(d->dqb_bhardlimit);
+ m->dqb_bsoftlimit = qbtos(d->dqb_bsoftlimit);
+ m->dqb_curspace = qbtos(d->dqb_curblocks);
m->dqb_itime = d->dqb_itime;
m->dqb_btime = d->dqb_btime;
}
@@ -46,9 +33,9 @@ static void v1_mem2disk_dqblk(struct v1_disk_dqblk *d, struct mem_dqblk *m)
d->dqb_ihardlimit = m->dqb_ihardlimit;
d->dqb_isoftlimit = m->dqb_isoftlimit;
d->dqb_curinodes = m->dqb_curinodes;
- d->dqb_bhardlimit = v1_stoqb(m->dqb_bhardlimit);
- d->dqb_bsoftlimit = v1_stoqb(m->dqb_bsoftlimit);
- d->dqb_curblocks = v1_stoqb(m->dqb_curspace);
+ d->dqb_bhardlimit = stoqb(m->dqb_bhardlimit);
+ d->dqb_bsoftlimit = stoqb(m->dqb_bsoftlimit);
+ d->dqb_curblocks = stoqb(m->dqb_curspace);
d->dqb_itime = m->dqb_itime;
d->dqb_btime = m->dqb_btime;
}
@@ -172,7 +159,7 @@ static int v1_read_file_info(struct super_block *sb, int type)
}
ret = 0;
/* limits are stored as unsigned 32-bit data */
- dqopt->info[type].dqi_max_spc_limit = 0xffffffffULL << QUOTABLOCK_BITS;
+ dqopt->info[type].dqi_max_spc_limit = 0xffffffffULL << QIF_DQBLKSIZE_BITS;
dqopt->info[type].dqi_max_ino_limit = 0xffffffff;
dqopt->info[type].dqi_igrace =
dqblk.dqb_itime ? dqblk.dqb_itime : MAX_IQ_TIME;
diff --git a/fs/quota/quota_v2.c b/fs/quota/quota_v2.c
index b1467f3921c2..d4282329753b 100644
--- a/fs/quota/quota_v2.c
+++ b/fs/quota/quota_v2.c
@@ -41,19 +41,6 @@ static const struct qtree_fmt_operations v2r1_qtree_ops = {
.is_id = v2r1_is_id,
};

-#define QUOTABLOCK_BITS 10
-#define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS)
-
-static inline qsize_t v2_stoqb(qsize_t space)
-{
- return (space + QUOTABLOCK_SIZE - 1) >> QUOTABLOCK_BITS;
-}
-
-static inline qsize_t v2_qbtos(qsize_t blocks)
-{
- return blocks << QUOTABLOCK_BITS;
-}
-
static int v2_read_header(struct super_block *sb, int type,
struct v2_disk_dqheader *dqhead)
{
@@ -127,7 +114,7 @@ static int v2_read_file_info(struct super_block *sb, int type)
qinfo = info->dqi_priv;
if (version == 0) {
/* limits are stored as unsigned 32-bit data */
- info->dqi_max_spc_limit = 0xffffffffLL << QUOTABLOCK_BITS;
+ info->dqi_max_spc_limit = 0xffffffffLL << QIF_DQBLKSIZE_BITS;
info->dqi_max_ino_limit = 0xffffffff;
} else {
/*
@@ -226,8 +213,8 @@ static void v2r0_disk2memdqb(struct dquot *dquot, void *dp)
m->dqb_isoftlimit = le32_to_cpu(d->dqb_isoftlimit);
m->dqb_curinodes = le32_to_cpu(d->dqb_curinodes);
m->dqb_itime = le64_to_cpu(d->dqb_itime);
- m->dqb_bhardlimit = v2_qbtos(le32_to_cpu(d->dqb_bhardlimit));
- m->dqb_bsoftlimit = v2_qbtos(le32_to_cpu(d->dqb_bsoftlimit));
+ m->dqb_bhardlimit = qbtos(le32_to_cpu(d->dqb_bhardlimit));
+ m->dqb_bsoftlimit = qbtos(le32_to_cpu(d->dqb_bsoftlimit));
m->dqb_curspace = le64_to_cpu(d->dqb_curspace);
m->dqb_btime = le64_to_cpu(d->dqb_btime);
/* We need to escape back all-zero structure */
@@ -248,8 +235,8 @@ static void v2r0_mem2diskdqb(void *dp, struct dquot *dquot)
d->dqb_isoftlimit = cpu_to_le32(m->dqb_isoftlimit);
d->dqb_curinodes = cpu_to_le32(m->dqb_curinodes);
d->dqb_itime = cpu_to_le64(m->dqb_itime);
- d->dqb_bhardlimit = cpu_to_le32(v2_stoqb(m->dqb_bhardlimit));
- d->dqb_bsoftlimit = cpu_to_le32(v2_stoqb(m->dqb_bsoftlimit));
+ d->dqb_bhardlimit = cpu_to_le32(stoqb(m->dqb_bhardlimit));
+ d->dqb_bsoftlimit = cpu_to_le32(stoqb(m->dqb_bsoftlimit));
d->dqb_curspace = cpu_to_le64(m->dqb_curspace);
d->dqb_btime = cpu_to_le64(m->dqb_btime);
d->dqb_id = cpu_to_le32(from_kqid(&init_user_ns, dquot->dq_id));
@@ -279,8 +266,8 @@ static void v2r1_disk2memdqb(struct dquot *dquot, void *dp)
m->dqb_isoftlimit = le64_to_cpu(d->dqb_isoftlimit);
m->dqb_curinodes = le64_to_cpu(d->dqb_curinodes);
m->dqb_itime = le64_to_cpu(d->dqb_itime);
- m->dqb_bhardlimit = v2_qbtos(le64_to_cpu(d->dqb_bhardlimit));
- m->dqb_bsoftlimit = v2_qbtos(le64_to_cpu(d->dqb_bsoftlimit));
+ m->dqb_bhardlimit = qbtos(le64_to_cpu(d->dqb_bhardlimit));
+ m->dqb_bsoftlimit = qbtos(le64_to_cpu(d->dqb_bsoftlimit));
m->dqb_curspace = le64_to_cpu(d->dqb_curspace);
m->dqb_btime = le64_to_cpu(d->dqb_btime);
/* We need to escape back all-zero structure */
@@ -301,8 +288,8 @@ static void v2r1_mem2diskdqb(void *dp, struct dquot *dquot)
d->dqb_isoftlimit = cpu_to_le64(m->dqb_isoftlimit);
d->dqb_curinodes = cpu_to_le64(m->dqb_curinodes);
d->dqb_itime = cpu_to_le64(m->dqb_itime);
- d->dqb_bhardlimit = cpu_to_le64(v2_stoqb(m->dqb_bhardlimit));
- d->dqb_bsoftlimit = cpu_to_le64(v2_stoqb(m->dqb_bsoftlimit));
+ d->dqb_bhardlimit = cpu_to_le64(stoqb(m->dqb_bhardlimit));
+ d->dqb_bsoftlimit = cpu_to_le64(stoqb(m->dqb_bsoftlimit));
d->dqb_curspace = cpu_to_le64(m->dqb_curspace);
d->dqb_btime = cpu_to_le64(m->dqb_btime);
d->dqb_id = cpu_to_le32(from_kqid(&init_user_ns, dquot->dq_id));
diff --git a/include/linux/quota.h b/include/linux/quota.h
index fd692b4a41d5..23a09bc954a4 100644
--- a/include/linux/quota.h
+++ b/include/linux/quota.h
@@ -538,4 +538,14 @@ struct quota_module_name {
{QFMT_VFS_V1, "quota_v2"},\
{0, NULL}}

+static inline qsize_t qbtos(qsize_t blocks)
+{
+ return blocks << QIF_DQBLKSIZE_BITS;
+}
+
+static inline qsize_t stoqb(qsize_t space)
+{
+ return (space + QIF_DQBLKSIZE - 1) >> QIF_DQBLKSIZE_BITS;
+}
+
#endif /* _QUOTA_ */
--
2.35.1