From b5ee9d25702b8cadae2c9a78946211dcf64d768b Mon Sep 17 00:00:00 2001 From: Dave Chinner Date: Mon, 20 May 2013 09:51:10 +1000 Subject: [PATCH] --- yaml --- r: 376316 b: refs/heads/master c: 509e708a8929c5b75a16c985c03db5329e09cad4 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/xfs/xfs_extfree_item.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 8f13a22b614f..74b9960ee0be 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7031d0e1c46e2b1c869458233dd216cb72af41b2 +refs/heads/master: 509e708a8929c5b75a16c985c03db5329e09cad4 diff --git a/trunk/fs/xfs/xfs_extfree_item.c b/trunk/fs/xfs/xfs_extfree_item.c index c0f375087efc..452920a3f03f 100644 --- a/trunk/fs/xfs/xfs_extfree_item.c +++ b/trunk/fs/xfs/xfs_extfree_item.c @@ -305,11 +305,12 @@ xfs_efi_release(xfs_efi_log_item_t *efip, { ASSERT(atomic_read(&efip->efi_next_extent) >= nextents); if (atomic_sub_and_test(nextents, &efip->efi_next_extent)) { - __xfs_efi_release(efip); - /* recovery needs us to drop the EFI reference, too */ if (test_bit(XFS_EFI_RECOVERED, &efip->efi_flags)) __xfs_efi_release(efip); + + __xfs_efi_release(efip); + /* efip may now have been freed, do not reference it again. */ } }