[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20160715030155.GB26465@thunk.org>
Date: Thu, 14 Jul 2016 23:01:55 -0400
From: Theodore Ts'o <tytso@....edu>
To: Vegard Nossum <vegard.nossum@...cle.com>
Cc: linux-ext4@...r.kernel.org,
"Aneesh Kumar K.V" <aneesh.kumar@...ux.vnet.ibm.com>
Subject: Re: [PATCH] ext4: fix reference counting bug on block allocation
error
On Thu, Jul 07, 2016 at 01:21:55PM +0200, Vegard Nossum wrote:
>
> The attached new patch just returns on error instead of trying to fix
> the problem.
The issue with your v2 patch is that we end up returning EAGAIN to
userspace, which is confusing. So I've fixed up your patch by adding
the following changes.
Thanks,
- Ted
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 5399b88..1156216 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2943,7 +2943,7 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
ext4_error(sb, "Allocating blocks %llu-%llu which overlap "
"fs metadata", block, block+len);
/* File system mounted not to panic on error
- * Fix the bitmap and repeat the block allocation
+ * Fix the bitmap and return EFSCORRUPTED
* We leak some of the blocks here.
*/
ext4_lock_group(sb, ac->ac_b_ex.fe_group);
@@ -2952,7 +2952,7 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
ext4_unlock_group(sb, ac->ac_b_ex.fe_group);
err = ext4_handle_dirty_metadata(handle, NULL, bitmap_bh);
if (!err)
- err = -EAGAIN;
+ err = -EFSCORRUPTED;
goto out_err;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists