# Re: \[PATCH 2/2\] ext4: check free inode count before allocaing an inode

- From: Yongqiang Yang \<hidden\>
- Date: 2012-09-05 02:17:54 
- List: linux-ext4
- Page: https://ratatoskr.run/linux-ext4/2012/09/13416068
- Thread: https://ratatoskr.run/linux-ext4/2012/09/13416021/t.md

```text
On Sun, Sep 2, 2012 at 5:45 PM, Yongqiang Yang [ref] 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 <redacted>
> ---
>  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
```
