ocfs2: map flags directly in flags_to_o2dlm()

Use macro map_flag() is tricky and coccicheck outputs the following
warning:

  fs/ocfs2/stack_o2cb.c:69:5-16: Unneeded variable: "o2dlm_flags"

So map flags directly in flags_to_o2dlm() to make coccicheck happy.
And remove BUG_ON() here as well to simplify code since it runs well
a long time.

Link: https://lkml.kernel.org/r/1616138664-35935-1-git-send-email-joseph.qi@linux.alibaba.com
Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Reviewed-by: Wengang Wang <wen.gang.wang@oracle.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Gang He <ghe@suse.com>
Cc: Jun Piao <piaojun@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Joseph Qi 2021-04-29 22:54:05 -07:00 коммит произвёл Linus Torvalds
Родитель 1634852df7
Коммит f9630ec9d9
1 изменённых файлов: 18 добавлений и 18 удалений

Просмотреть файл

@ -59,31 +59,31 @@ static inline int mode_to_o2dlm(int mode)
return mode; return mode;
} }
#define map_flag(_generic, _o2dlm) \
if (flags & (_generic)) { \
flags &= ~(_generic); \
o2dlm_flags |= (_o2dlm); \
}
static int flags_to_o2dlm(u32 flags) static int flags_to_o2dlm(u32 flags)
{ {
int o2dlm_flags = 0; int o2dlm_flags = 0;
map_flag(DLM_LKF_NOQUEUE, LKM_NOQUEUE); if (flags & DLM_LKF_NOQUEUE)
map_flag(DLM_LKF_CANCEL, LKM_CANCEL); o2dlm_flags |= LKM_NOQUEUE;
map_flag(DLM_LKF_CONVERT, LKM_CONVERT); if (flags & DLM_LKF_CANCEL)
map_flag(DLM_LKF_VALBLK, LKM_VALBLK); o2dlm_flags |= LKM_CANCEL;
map_flag(DLM_LKF_IVVALBLK, LKM_INVVALBLK); if (flags & DLM_LKF_CONVERT)
map_flag(DLM_LKF_ORPHAN, LKM_ORPHAN); o2dlm_flags |= LKM_CONVERT;
map_flag(DLM_LKF_FORCEUNLOCK, LKM_FORCE); if (flags & DLM_LKF_VALBLK)
map_flag(DLM_LKF_TIMEOUT, LKM_TIMEOUT); o2dlm_flags |= LKM_VALBLK;
map_flag(DLM_LKF_LOCAL, LKM_LOCAL); if (flags & DLM_LKF_IVVALBLK)
o2dlm_flags |= LKM_INVVALBLK;
/* map_flag() should have cleared every flag passed in */ if (flags & DLM_LKF_ORPHAN)
BUG_ON(flags != 0); o2dlm_flags |= LKM_ORPHAN;
if (flags & DLM_LKF_FORCEUNLOCK)
o2dlm_flags |= LKM_FORCE;
if (flags & DLM_LKF_TIMEOUT)
o2dlm_flags |= LKM_TIMEOUT;
if (flags & DLM_LKF_LOCAL)
o2dlm_flags |= LKM_LOCAL;
return o2dlm_flags; return o2dlm_flags;
} }
#undef map_flag
/* /*
* Map an o2dlm status to standard errno values. * Map an o2dlm status to standard errno values.