[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAGBYx2a2RODjmJWgAck9XOeH=7+dvcGieTx5oZkwpCrO3oMD6g@mail.gmail.com>
Date: Wed, 5 Sep 2012 10:17:32 +0800
From: Yongqiang Yang <xiaoqiangnk@...il.com>
To: linux-ext4@...r.kernel.org
Subject: Re: [PATCH 2/2] ext4: check free inode count before allocaing an inode
On Sun, Sep 2, 2012 at 5:45 PM, Yongqiang Yang <xiaoqiangnk@...il.com> wrote:
> Recnetly, I ecountered some corrupted filesystems in which some
> groups' free inode counts were negative, it seemed that free inode
This comment is not exactly, it is not negative but 65535. I will
resend the patch later.
Thanks,
Yongqiang.
> count was overflow. This patch teaches ext4 to check free inode
> count before allocaing an inode.
>
> Signed-off-by: Yongqiang Yang <xiaoqiangnk@...il.com>
> ---
> fs/ext4/ialloc.c | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
> index 26154b8..fa36372 100644
> --- a/fs/ext4/ialloc.c
> +++ b/fs/ext4/ialloc.c
> @@ -697,6 +697,15 @@ got_group:
> if (!gdp)
> goto fail;
>
> + /*
> + * Check free inodes count before loading bitmap.
> + */
> + if (ext4_free_inodes_count(sb, gdp) == 0) {
> + if (++group == ngroups)
> + group = 0;
> + continue;
> + }
> +
> brelse(inode_bitmap_bh);
> inode_bitmap_bh = ext4_read_inode_bitmap(sb, group);
> if (!inode_bitmap_bh)
> --
> 1.7.5.1
>
--
Best Wishes
Yongqiang Yang
--
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