GFS2: Fix race in gfs2_rs_alloc
authorAbhijith Das <adas@redhat.com>
Wed, 19 Dec 2012 15:48:01 +0000 (10:48 -0500)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 2 Jan 2013 10:04:53 +0000 (10:04 +0000)
commitf1213cacc7ffc7d4cdef3692f22b28a2df3216f5
tree323a502b74dc45a726b05c5b0bddccb77ba516df
parentec1487528bed94c4aaff3687834fe94203880fd6
GFS2: Fix race in gfs2_rs_alloc

QE aio tests uncovered a race condition in gfs2_rs_alloc where it's possible
to come out of the function with a valid ip->i_res allocation but it gets
freed before use resulting in a NULL ptr dereference.

This patch envelopes the initial short-circuit check for non-NULL ip->i_res
into the mutex lock. With this patch, I was able to successfully run the
reproducer test multiple times.

Resolves: rhbz#878476
Signed-off-by: Abhi Das <adas@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/rgrp.c