xfs
[Top] [All Lists]

[PATCH 02/15] xfs: handle errors from ->free_blocks in xfs_btree_kill_ir

To: xfs@xxxxxxxxxxx
Subject: [PATCH 02/15] xfs: handle errors from ->free_blocks in xfs_btree_kill_iroot
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Wed, 17 Feb 2016 18:20:39 +1100
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1455693652-3899-1-git-send-email-david@xxxxxxxxxxxxx>
References: <1455693652-3899-1-git-send-email-david@xxxxxxxxxxxxx>
From: Christoph Hellwig <hch@xxxxxx>

Source kernel commit 196328ec973a74ee52cc282824e72c3824dc1cf5

Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
---
 libxfs/xfs_btree.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/libxfs/xfs_btree.c b/libxfs/xfs_btree.c
index efcad26..14d8bf3 100644
--- a/libxfs/xfs_btree.c
+++ b/libxfs/xfs_btree.c
@@ -3209,6 +3209,7 @@ xfs_btree_kill_iroot(
        int                     level;
        int                     index;
        int                     numrecs;
+       int                     error;
 #ifdef DEBUG
        union xfs_btree_ptr     ptr;
        int                     i;
@@ -3272,8 +3273,6 @@ xfs_btree_kill_iroot(
        cpp = xfs_btree_ptr_addr(cur, 1, cblock);
 #ifdef DEBUG
        for (i = 0; i < numrecs; i++) {
-               int             error;
-
                error = xfs_btree_check_ptr(cur, cpp, i, level - 1);
                if (error) {
                        XFS_BTREE_TRACE_CURSOR(cur, XBT_ERROR);
@@ -3283,7 +3282,11 @@ xfs_btree_kill_iroot(
 #endif
        xfs_btree_copy_ptrs(cur, pp, cpp, numrecs);
 
-       cur->bc_ops->free_block(cur, cbp);
+       error = cur->bc_ops->free_block(cur, cbp);
+       if (error) {
+               XFS_BTREE_TRACE_CURSOR(cur, XBT_ERROR);
+               return error;
+       }
        XFS_BTREE_STATS_INC(cur, free);
 
        cur->bc_bufs[level - 1] = NULL;
-- 
2.7.0

<Prev in Thread] Current Thread [Next in Thread>