mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
[XFS] Fix a buffer refcount leak in dir2 code on a forced shutdown.
SGI-PV: 904196 SGI-Modid: xfs-linux-melb:xfs-kern:26097a Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:
parent
7d04a335b6
commit
e109007461
@ -505,7 +505,6 @@ xfs_dir2_leafn_lookup_int(
|
||||
XFS_DATA_FORK))) {
|
||||
return error;
|
||||
}
|
||||
curfdb = newfdb;
|
||||
free = curbp->data;
|
||||
ASSERT(be32_to_cpu(free->hdr.magic) ==
|
||||
XFS_DIR2_FREE_MAGIC);
|
||||
@ -527,8 +526,11 @@ xfs_dir2_leafn_lookup_int(
|
||||
if (unlikely(be16_to_cpu(free->bests[fi]) == NULLDATAOFF)) {
|
||||
XFS_ERROR_REPORT("xfs_dir2_leafn_lookup_int",
|
||||
XFS_ERRLEVEL_LOW, mp);
|
||||
if (curfdb != newfdb)
|
||||
xfs_da_brelse(tp, curbp);
|
||||
return XFS_ERROR(EFSCORRUPTED);
|
||||
}
|
||||
curfdb = newfdb;
|
||||
if (be16_to_cpu(free->bests[fi]) >= length) {
|
||||
*indexp = index;
|
||||
state->extravalid = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user