linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Gaoming (ming, consumer BG)" <gaoming20@huawei.com>
To: "Theodore Y. Ts'o" <tytso@mit.edu>
Cc: "linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Liqingchao (sorp)" <sorp.liqingchao@huawei.com>,
	"Shenchen (harry)" <harry.shen@huawei.com>,
	"miaoxie (A)" <miaoxie@huawei.com>,
	"yangfei (D)" <yangfei39@huawei.com>,
	"Renlipeng (OS driver)" <renlipeng@huawei.com>
Subject: 答复: 答复: 答复: [PATCH] ext4: e2fsprogs: fix inode bitmap num not integer,incompatible for ancient android devices
Date: Fri, 29 Jun 2018 02:06:03 +0000	[thread overview]
Message-ID: <FDC91B229D965C458E3615E98C48ADDD0EC4179B@dggemm511-mbx.china.huawei.com> (raw)
In-Reply-To: <20180628153022.GA8521@thunk.org>

We use usual inode size, it is 256 bytes.

Yes, this commit is in my repository.
But there is a bug in this patch.

Let me show you,
Here is the bug: " return ALIGN(inodes, (info.block_size / info.inode_size));"

In my reproduce,
info.block_size = 1024, (it is legal)
info.inode_size =256,

the code only ALIGN BY 4.

But in real scenario, we should align by 8,( 8 bit per bytes in inode map).

So we got Inodes per group: 1708 , which is illegal.

Like below,

./host/linux-x86/bin/make_ext4fs  -s -l 20M -b 1024 gaoming.img 
Creating filesystem with parameters:
    Size: 20971520
    Block size: 1024
    Blocks per group: 8192
    Inodes per group: 1708
    Inode size: 256
    Journal blocks: 1024
    Label:
    Blocks: 20480
    Block groups: 3
    Reserved block group size: 95
Created filesystem with 11/5124 inodes and 2509/20480 blocks

This bug exists very very long time till now.


Regards,
Ming

-----邮件原件-----
发件人: Theodore Y. Ts'o [mailto:tytso@mit.edu] 
发送时间: 2018年6月28日 23:30
收件人: Gaoming (ming, consumer BG)
抄送: linux-ext4@vger.kernel.org; linux-kernel@vger.kernel.org; Liqingchao (sorp); Shenchen (harry); miaoxie (A); yangfei (D); Renlipeng (OS driver)
主题: Re: 答复: 答复: [PATCH] ext4: e2fsprogs: fix inode bitmap num not integer,incompatible for ancient android devices

On Thu, Jun 28, 2018 at 07:56:59AM +0000, Gaoming (ming, consumer BG) wrote:
> You see, Inodes per group is 1708,which is illegal as you said.
> 
> So, the problem exists a long time until Jun 21th 2018.
> 
> You complained the problem in 2011, they do not fix it till 2018.
> Just as
> I complained, fix it,  and you do not accept it. ^_^

Here's the commit.  (Note the date.)   Do you see it in your repository?

Or are you using an unusual inode size?  (e.g., not 256 bytes, or 16
inodes per block).


       	   	       	       	     	  - Ted

commit 06c35f935a7adadceb9ee326b3231f952f6ad203
Merge: 480a3b1 96cc54a
Author: Colin Cross <ccross@android.com>
Date:   Sat Apr 30 19:08:09 2011 -0700

    Merge "Make inodes per group a multiple of inodes per block"

diff --cc ext4_utils/make_ext4fs.c
index c9fd992,e37d617..22c9424
--- a/ext4_utils/make_ext4fs.c
+++ b/ext4_utils/make_ext4fs.c
@@@ -214,26 -215,10 +214,27 @@@ static u32 compute_inodes_per_group(
  {
  	u32 blocks = DIV_ROUND_UP(info.len, info.block_size);
  	u32 block_groups = DIV_ROUND_UP(blocks, info.blocks_per_group);
- 	return DIV_ROUND_UP(info.inodes, block_groups);
+ 	u32 inodes = DIV_ROUND_UP(info.inodes, block_groups);
+ 	return ALIGN(inodes, (info.block_size / info.inode_size));
  }
  
 +static u32 compute_bg_desc_reserve_blocks()
 +{
 +	u32 blocks = DIV_ROUND_UP(info.len, info.block_size);
 +	u32 block_groups = DIV_ROUND_UP(blocks, info.blocks_per_group);
 +	u32 bg_desc_blocks = DIV_ROUND_UP(block_groups * sizeof(struct ext2_group_desc),
 +			info.block_size);
 +
 +	u32 bg_desc_reserve_blocks =
 +			DIV_ROUND_UP(block_groups * 1024 * sizeof(struct ext2_group_desc),
 +					info.block_size) - bg_desc_blocks;
 +
 +	if (bg_desc_reserve_blocks > info.block_size / sizeof(u32))
 +		bg_desc_reserve_blocks = info.block_size / sizeof(u32);
 +
 +	return bg_desc_reserve_blocks;
 +}
 +
  void reset_ext4fs_info() {
      // Reset all the global data structures used by make_ext4fs so it
      // can be called again.

  reply	other threads:[~2018-06-29  2:06 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-26 11:54 [PATCH] ext4: e2fsprogs: fix inode bitmap num not integer,incompatible for ancient android devices GaoMing
2018-06-27 14:09 ` Theodore Y. Ts'o
2018-06-28  1:40   ` 答复: " Gaoming (ming, consumer BG)
2018-06-28  2:29     ` Theodore Y. Ts'o
2018-06-28  7:56       ` 答复: " Gaoming (ming, consumer BG)
2018-06-28 15:30         ` Theodore Y. Ts'o
2018-06-29  2:06           ` Gaoming (ming, consumer BG) [this message]
2018-06-29 14:26             ` 答复: " Theodore Y. Ts'o
2018-06-30  1:26               ` 答复: " Gaoming (ming, consumer BG)
2018-06-30 13:04                 ` Theodore Y. Ts'o
2018-07-02  9:34                   ` 答复: " Gaoming (ming, consumer BG)
2018-07-02 12:16                     ` Theodore Y. Ts'o
2018-07-03  0:58                       ` 答复: " Gaoming (ming, consumer BG)
2018-07-03 10:35                         ` Theodore Y. Ts'o
2018-07-03 11:15                           ` 答复: " Gaoming (ming, consumer BG)
2018-07-03 16:03                             ` Theodore Y. Ts'o
2018-07-04  1:54                               ` 答复: " Gaoming (ming, consumer BG)

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=FDC91B229D965C458E3615E98C48ADDD0EC4179B@dggemm511-mbx.china.huawei.com \
    --to=gaoming20@huawei.com \
    --cc=harry.shen@huawei.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miaoxie@huawei.com \
    --cc=renlipeng@huawei.com \
    --cc=sorp.liqingchao@huawei.com \
    --cc=tytso@mit.edu \
    --cc=yangfei39@huawei.com \
    /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).