Messages in this thread | | | Date | Wed, 6 Nov 2002 21:12:56 -0600 | From | Maciej Babinski <> | Subject | Re: 2.5.46 ext3 errors |
| |
Since I've applied this patch, I can't reproduce the problem. Thanks!
Maciej
> > Looks like we had some overeager cut-n-paste in the Orlov > conversion. > > The per-blockgroup inode and directory accounting is being > double-accounted for, and we're not journalling the updates... > > This should fix it up, but it is untested. > > > --- 25/fs/ext3/ialloc.c~ext3-inodes-count-fix Wed Nov 6 16:16:55 2002 > +++ 25-akpm/fs/ext3/ialloc.c Wed Nov 6 16:24:20 2002 > @@ -227,11 +227,6 @@ static int find_group_dir(struct super_b > } > if (!best_desc) > return -1; > - best_desc->bg_free_inodes_count = > - cpu_to_le16(le16_to_cpu(best_desc->bg_free_inodes_count) - 1); > - best_desc->bg_used_dirs_count = > - cpu_to_le16(le16_to_cpu(best_desc->bg_used_dirs_count) + 1); > - mark_buffer_dirty(best_bh); > return best_group; > } > > @@ -355,14 +350,7 @@ fallback: > } > > return -1; > - > found: > - desc->bg_free_inodes_count = > - cpu_to_le16(le16_to_cpu(desc->bg_free_inodes_count) - 1); > - desc->bg_used_dirs_count = > - cpu_to_le16(le16_to_cpu(desc->bg_used_dirs_count) + 1); > - sbi->s_dir_count++; > - mark_buffer_dirty(bh); > return group; > } > > @@ -410,9 +398,6 @@ static int find_group_other(struct super > return -1; > > found: > - desc->bg_free_inodes_count = > - cpu_to_le16(le16_to_cpu(desc->bg_free_inodes_count) - 1); > - mark_buffer_dirty(bh); > return group; > } > > @@ -521,9 +506,11 @@ repeat: > if (err) goto fail; > gdp->bg_free_inodes_count = > cpu_to_le16(le16_to_cpu(gdp->bg_free_inodes_count) - 1); > - if (S_ISDIR(mode)) > + if (S_ISDIR(mode)) { > gdp->bg_used_dirs_count = > cpu_to_le16(le16_to_cpu(gdp->bg_used_dirs_count) + 1); > + EXT3_SB(sb)->s_dir_count++; > + } > BUFFER_TRACE(bh2, "call ext3_journal_dirty_metadata"); > err = ext3_journal_dirty_metadata(handle, bh2); > if (err) goto fail; > > _ > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |