aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_log_recover.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@sgi.com>2005-06-21 01:41:19 -0400
committerNathan Scott <nathans@sgi.com>2005-06-21 01:41:19 -0400
commit7d795ca3442c7a562c45aeb7a7a808c79992a589 (patch)
treeb18bf1ccbca3cb59b9fb31d0072de24c276aba9f /fs/xfs/xfs_log_recover.c
parentf898d6c09caa40d82203acd72e9fda3cd5aeae74 (diff)
[XFS] consolidate extent item freeing
SGI-PV: 938062 SGI-Modid: xfs-linux:xfs-kern:194415a Signed-off-by: Christoph Hellwig <hch@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_log_recover.c')
-rw-r--r--fs/xfs/xfs_log_recover.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 91d764a5a9b2..0aac28ddb81c 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -2747,7 +2747,6 @@ xlog_recover_do_efd_trans(
2747 xfs_efi_log_item_t *efip = NULL; 2747 xfs_efi_log_item_t *efip = NULL;
2748 xfs_log_item_t *lip; 2748 xfs_log_item_t *lip;
2749 int gen; 2749 int gen;
2750 int nexts;
2751 __uint64_t efi_id; 2750 __uint64_t efi_id;
2752 SPLDECL(s); 2751 SPLDECL(s);
2753 2752
@@ -2782,22 +2781,15 @@ xlog_recover_do_efd_trans(
2782 } 2781 }
2783 lip = xfs_trans_next_ail(mp, lip, &gen, NULL); 2782 lip = xfs_trans_next_ail(mp, lip, &gen, NULL);
2784 } 2783 }
2785 if (lip == NULL) {
2786 AIL_UNLOCK(mp, s);
2787 }
2788 2784
2789 /* 2785 /*
2790 * If we found it, then free it up. If it wasn't there, it 2786 * If we found it, then free it up. If it wasn't there, it
2791 * must have been overwritten in the log. Oh well. 2787 * must have been overwritten in the log. Oh well.
2792 */ 2788 */
2793 if (lip != NULL) { 2789 if (lip != NULL) {
2794 nexts = efip->efi_format.efi_nextents; 2790 xfs_efi_item_free(efip);
2795 if (nexts > XFS_EFI_MAX_FAST_EXTENTS) { 2791 } else {
2796 kmem_free(lip, sizeof(xfs_efi_log_item_t) + 2792 AIL_UNLOCK(mp, s);
2797 ((nexts - 1) * sizeof(xfs_extent_t)));
2798 } else {
2799 kmem_zone_free(xfs_efi_zone, efip);
2800 }
2801 } 2793 }
2802} 2794}
2803 2795