diff options
author | Joel Becker <Joel.Becker@oracle.com> | 2008-08-22 14:30:10 -0700 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2008-08-25 07:29:47 -0700 |
commit | d6817cdbd143f87f9d7c59a4c3194091190eeb84 (patch) | |
tree | 5744bb0cb5d3083f37674d845576d61431b4ebb3 | |
parent | de6bf18e9ce0df807dab08cff08751cac383429d (diff) | |
download | op-kernel-dev-d6817cdbd143f87f9d7c59a4c3194091190eeb84.zip op-kernel-dev-d6817cdbd143f87f9d7c59a4c3194091190eeb84.tar.gz |
ocfs2: Increment the reference count of an already-active stack.
The ocfs2_stack_driver_request() function failed to increment the
refcount of an already-active stack. It only did the increment on the
first reference. Whoops.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Tested-by: Marcos Matsunaga <marcos.matsunaga@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
-rw-r--r-- | fs/ocfs2/stackglue.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c index 10e149a..07f348b 100644 --- a/fs/ocfs2/stackglue.c +++ b/fs/ocfs2/stackglue.c @@ -97,13 +97,14 @@ static int ocfs2_stack_driver_request(const char *stack_name, goto out; } - /* Ok, the stack is pinned */ - p->sp_count++; active_stack = p; - rc = 0; out: + /* If we found it, pin it */ + if (!rc) + active_stack->sp_count++; + spin_unlock(&ocfs2_stack_lock); return rc; } |