xfs: bulkstat doesn't release AGI buffer on error
authorDave Chinner <dchinner@redhat.com>
Tue, 28 Oct 2014 21:22:18 +0000 (08:22 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 28 Oct 2014 21:22:18 +0000 (08:22 +1100)
commita6bbce54efa9145dbcf3029c885549f7ebc40a3b
treead8cac74e9ad13827614de3bd368d3cdaff4b22e
parentcac7f2429872d3733dc3f9915857b1691da2eb2f
xfs: bulkstat doesn't release AGI buffer on error

The recent refactoring of the bulkstat code left a small landmine in
the code. If a inobt read fails, then the tree walk is aborted and
returns without releasing the AGI buffer or freeing the cursor. This
can lead to a subsequent bulkstat call hanging trying to grab the
AGI buffer again.

cc: <stable@vger.kernel.org>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_itable.c