From 3ea2f755a294fa4997e8aa29ee42c207b316144d Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Fri, 9 Jun 2006 14:58:48 +1000 Subject: [PATCH] --- yaml --- r: 28423 b: refs/heads/master c: e109007461cddfc80a908f0b015f4eeb485e1d85 h: refs/heads/master i: 28421: 11ce25c7bf9a2f2f285af8759d977c216ed75e2d 28419: a55549f10d31b997e06934dcb9eb48bbd727c525 28415: ef6b70854453bae462ce7b1d001fe7b2202ad8ca v: v3 --- [refs] | 2 +- trunk/fs/xfs/xfs_dir2_node.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 7e956a156ac4..83a05cb6623e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7d04a335b6b2d79e3742ffd28bd651204574e794 +refs/heads/master: e109007461cddfc80a908f0b015f4eeb485e1d85 diff --git a/trunk/fs/xfs/xfs_dir2_node.c b/trunk/fs/xfs/xfs_dir2_node.c index c0e8fcf5e13f..a8d483c0a84c 100644 --- a/trunk/fs/xfs/xfs_dir2_node.c +++ b/trunk/fs/xfs/xfs_dir2_node.c @@ -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;