dlm: fix missing endian conversion of rcom_status flags
authorNeale Ferguson <neale@sinenomine.net>
Tue, 14 Oct 2014 20:10:48 +0000 (15:10 -0500)
committerDavid Teigland <teigland@redhat.com>
Tue, 14 Oct 2014 20:11:48 +0000 (15:11 -0500)
The flags are already converted to le when being sent,
but are not being converted back to cpu when received.

Signed-off-by: Neale Ferguson <neale@sinenomine.net>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/rcom.c

index 9d61947d473a1191f4a0391bb837746dfb8206c3..f3f5e72a29ba220542ac0c630fc99cd49664cdf2 100644 (file)
@@ -206,7 +206,7 @@ static void receive_rcom_status(struct dlm_ls *ls, struct dlm_rcom *rc_in)
 
        rs = (struct rcom_status *)rc_in->rc_buf;
 
-       if (!(rs->rs_flags & DLM_RSF_NEED_SLOTS)) {
+       if (!(le32_to_cpu(rs->rs_flags) & DLM_RSF_NEED_SLOTS)) {
                status = dlm_recover_status(ls);
                goto do_create;
        }