dlm_cb_seq is 64 bits. If dlm_cb_seq overflows and returns to 0,
dlm_rem_lkb_callback() will not work properly.

Signed-off-by: Tadashi Miyauchi <miyau...@toshiba-tops.co.jp>
Signed-off-by: Tsutomu Owa <tsutomu....@toshiba.co.jp>
---
 fs/dlm/ast.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/dlm/ast.c b/fs/dlm/ast.c
index 07fed83..562fa8c 100644
--- a/fs/dlm/ast.c
+++ b/fs/dlm/ast.c
@@ -181,6 +181,8 @@ void dlm_add_cb(struct dlm_lkb *lkb, uint32_t flags, int 
mode, int status,
 
        spin_lock(&dlm_cb_seq_spin);
        new_seq = ++dlm_cb_seq;
+       if (!dlm_cb_seq)
+               new_seq = ++dlm_cb_seq;
        spin_unlock(&dlm_cb_seq_spin);
 
        if (lkb->lkb_flags & DLM_IFL_USER) {
-- 
2.7.4





Reply via email to