staging/lustre/mdc: Initialize req in mdc_enqueue for !it case
authorOleg Drokin <green@linuxhacker.ru>
Mon, 2 Feb 2015 02:52:19 +0000 (21:52 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Feb 2015 09:32:34 +0000 (17:32 +0800)
Commit ab909585b813 ("staging: lustre: Cleanup variable declarations
in mdc_enqueue()") broke Lustre flock handling introducing access
to uninitialized req variable, leading to bizzare crash in a later
call to __req_capsule_offset with invalid pill value.

Set req to NULL just for this case as in all other cases req is
explicitly initialized with request packing call.

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
CC: Srikrishan Malik <srikrishanmalik@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/mdc/mdc_locks.c

index 8c9b4f5..d1c224e 100644 (file)
@@ -828,6 +828,7 @@ resend:
                         einfo->ei_type);
                policy = (ldlm_policy_data_t *)lmm;
                res_id.name[3] = LDLM_FLOCK;
+               req = NULL;
        } else if (it->it_op & IT_OPEN) {
                req = mdc_intent_open_pack(exp, it, op_data, lmm, lmmsize,
                                           einfo->ei_cbdata);