exofs: Fix CRASH on very early IO errors.
authorBoaz Harrosh <bharrosh@panasas.com>
Wed, 16 May 2012 11:22:21 +0000 (14:22 +0300)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 10 Jun 2012 13:41:33 +0000 (14:41 +0100)
commit27b4384504c58e94b0938b467261f893aeab9966
tree3b41cdb4a5f4723496ff29c10785261dc29259f8
parentb35e0437787ca030484a278d052d3aada0bb9947
exofs: Fix CRASH on very early IO errors.

commit 6abe4a87f7bc7978705c386dbba0ca0c7790b3ec upstream.

If at exofs_fill_super() we had an early termination
do to any error, like an IO error while reading the
super-block. We would crash inside exofs_free_sbi().

This is because sbi->oc.numdevs was set to 1, before
we actually have a device table at all.

Fix it by moving the sbi->oc.numdevs = 1 to after the
allocation of the device table.

Reported-by: Johannes Schild <JSchild@gmx.de>
Stable: This is a bug since v3.2.0
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/exofs/super.c