From: Andreas Dilger <adilger@sun.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: cmm@us.ibm.com, akpm@linux-foundation.org,
linux-ext4@vger.kernel.org, Mingming Cao <cmm@us.vnet.ibm.com>
Subject: Re: [PATCH] ext3: Return EIO if new block is allocated from system zone.
Date: Mon, 24 Mar 2008 16:32:51 -0600 [thread overview]
Message-ID: <20080324223251.GL2691@webber.adilger.int> (raw)
In-Reply-To: <1206378298-10341-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On Mar 24, 2008 22:34 +0530, Aneesh Kumar K.V wrote:
> If the block allocator gets blocks out of system zone ext3 calls
> ext3_error. But if the file system is mounted with errors=continue
> return with -EIO.
>
> System zone is the block range mapping block bitmap, inode bitmap and inode
> table.
I don't understand this patch. Surely it has nothing to do with the user,
and instead the code should re-try the allocation after marking the block
in-use in the bitmap?
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> Signed-off-by: Mingming Cao <cmm@us.vnet.ibm.com>
> ---
> fs/ext3/balloc.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
> index da0cb2c..6ce7f7d 100644
> --- a/fs/ext3/balloc.c
> +++ b/fs/ext3/balloc.c
> @@ -1642,7 +1642,7 @@ allocated:
> "Allocating block in system zone - "
> "blocks from "E3FSBLK", length %lu",
> ret_block, num);
> - goto out;
> + goto io_error;
> }
I think the problem here is that this "goto" is simply an in-effective
method of error handling. The block HAS to be marked in-use in the
bitmap, or it will just continue to try and be allocated. After marking
the block in-use there should be a "goto retry-alloc" instead of error.
To be honest, I thought in 2.6 this would invoke the block bitmap checking
code to revalidate the whole bitmap at this point and then retry the alloc.
In 2.4 this similar code looks like:
if (tmp == le32_to_cpu(gdp->bg_block_bitmap) ||
tmp == le32_to_cpu(gdp->bg_inode_bitmap) ||
in_range (tmp, le32_to_cpu(gdp->bg_inode_table),
EXT3_SB(sb)->s_itb_per_group)) {
ext3_error(sb, __FUNCTION__,
"Allocating block in system zone - block = %u", tmp);
/* Note: This will potentially use up one of the handle's
* buffer credits. Normally we have way too many credits,
* so that is OK. In _very_ rare cases it might not be OK.
* We will trigger an assertion if we run out of credits,
* and we will have to do a full fsck of the filesystem -
* better than randomly corrupting filesystem metadata.
*/
ext3_set_bit(j, bh->b_data);
goto repeat;
}
Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.
next prev parent reply other threads:[~2008-03-24 22:33 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-24 17:04 [PATCH] ext3: Return EIO if new block is allocated from system zone Aneesh Kumar K.V
2008-03-24 17:04 ` [PATCH] ext3: Use page_mkwrite vma_operations to get mmap write notification Aneesh Kumar K.V
2008-03-24 17:04 ` [PATCH] ext4: Export needed symbol for ZERO_PAGE usage in modules Aneesh Kumar K.V
2008-03-24 17:04 ` [PATCH] ext2: Use page_mkwrite vma_operations to get mmap write notification Aneesh Kumar K.V
2008-03-24 23:01 ` [PATCH] ext3: " Andrew Morton
2008-03-25 9:21 ` Nick Piggin
2008-03-24 22:32 ` Andreas Dilger [this message]
2008-03-25 11:03 ` [PATCH] ext3: Return EIO if new block is allocated from system zone Aneesh Kumar K.V
2008-03-25 20:59 ` Andreas Dilger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080324223251.GL2691@webber.adilger.int \
--to=adilger@sun.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=cmm@us.ibm.com \
--cc=cmm@us.vnet.ibm.com \
--cc=linux-ext4@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).