[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ext4
Subject:    [Ext2-devel] Re: 2.5.46 ext3 errors
From:       Maciej Babinski <maciej () imsa ! edu>
Date:       2002-11-07 3:12:56
[Download RAW message or body]

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/


-------------------------------------------------------
This sf.net email is sponsored by: See the NEW Palm 
Tungsten T handheld. Power & Color in a compact size!
http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en
_______________________________________________
Ext2-devel mailing list
Ext2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ext2-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic