This patch does not seem to apply cleanly. I get a rejection from one file, everything else is fine. This is with a vanilla 2 .4.20 patched with 2.4.21-rc8.
Hunk #7 FAILED at 517. 1 out of 10 hunks FAILED -- saving rejects to file fs/ext2/balloc.c.rej
The reject file is attached. Is this anything I need to worry about?
Steve
Theodore Ts'o wrote:
On Fri, Jun 06, 2003 at 07:06:15PM -0600, kwijibo@zianet.com wrote:
Could someone create some newer htree patches for the 2.4.x kernel?
There are some bug fixes in the 2.4.21-rc releases that would be nice to have but the htree patches preceed those and they won't apply cleanly
to later pre/rc kernels.
I've put an updated set of ext2/3 patches here:
http://thunk.org/tytso/linux/extfs-2.4-update/extfs-update-2.4.21rc8
There is a broken out set of patches available at:
http://thunk.org/tytso/linux/extfs-2.4-update/broken-out-2.4.21rc8/
It's based on a set of patches which Stephen sent out in March, updated with a few bug fixes and with the patches that have been merged into 2.4.21-rc8 removed.
On another note has anyone had any problems yet with the htree? It sounds like a great improvement and it would almost be a necessity
for plans that I have with large numbers of files.
Well, I've been using these patches on a daily basis on my laptop without any problems. I'd be interested in hearing from people who are using these patches under heavy load on an NFS server, however.
If we can get some successful reports from folks who are using it under heavy NFS load, then I'd feel comfortable asking Marcello to include these patches into the 2.4 tree.
- Ted
*************** *** 513,540 **** goto out; } - tmp = j + i * EXT2_BLOCKS_PER_GROUP(sb) + le32_to_cpu(es->s_first_data_block); - 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), EXT2_SB(sb)->s_itb_per_group)) { ext2_error (sb, "ext2_new_block", "Allocating block in system zone - block = %lu", - tmp); - ext2_set_bit(j, bh->b_data); DQUOT_FREE_BLOCK(inode, 1); goto repeat; } - if (ext2_set_bit (j, bh->b_data)) { ext2_warning (sb, "ext2_new_block", - "bit already set for block %d", j); DQUOT_FREE_BLOCK(inode, 1); goto repeat; } - ext2_debug ("found bit %d\n", j); /* * Do block preallocation now if required. --- 517,544 ---- goto out; } + target_block = ret_block + group_no * EXT2_BLOCKS_PER_GROUP(sb) + le32_to_cpu(es->s_first_data_block); + if (target_block == le32_to_cpu(gdp->bg_block_bitmap) || + target_block == le32_to_cpu(gdp->bg_inode_bitmap) || + in_range (target_block, le32_to_cpu(gdp->bg_inode_table), EXT2_SB(sb)->s_itb_per_group)) { ext2_error (sb, "ext2_new_block", "Allocating block in system zone - block = %lu", + target_block); + ext2_set_bit(ret_block, bh->b_data); DQUOT_FREE_BLOCK(inode, 1); goto repeat; } + if (ext2_set_bit (ret_block, bh->b_data)) { ext2_warning (sb, "ext2_new_block", + "bit already set for block %d", ret_block); DQUOT_FREE_BLOCK(inode, 1); goto repeat; } + ext2_debug ("found bit %d\n", ret_block); /* * Do block preallocation now if required.