lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTikcsteV8Fatf-8uydyhYaNXxQgQHSsy3BdhBjXE@mail.gmail.com>
Date:	Mon, 14 Mar 2011 21:13:10 +0200
From:	Amir Goldstein <amir73il@...il.com>
To:	"Theodore Ts'o" <tytso@....edu>
Cc:	linux-ext4@...r.kernel.org
Subject: Re: Why do we initialize block bitmaps in ext4_new_inode()

On Mon, Mar 14, 2011 at 7:44 PM, Theodore Ts'o <tytso@....edu> wrote:
>
> Is there some subtle reason why ext4_new_inode() checked for
> uninitialized block bitmaps and initialized the block bitmaps in
> ext4_new_inode().  It's not immediately needed in that function, and I
> don't see any reason why initializing the inode table or inode
> allocation bitmap requires initializing the block bitmap.
>
> Am I missing something?

If you are, then I am missing it too.
Was there ever a time when uninit_bg meant something other than it means today?
Like wasn't it used by fsck for fast inode scan of ext3?
Does it mater anything for fsck if the block bitmap is not initialized
and the inode bitmap is?



>
>                                        - Ted
>
>
> From ff15031626d5f10ba1256c0c7a3818ca12205b55 Mon Sep 17 00:00:00 2001
> From: Theodore Ts'o <tytso@....edu>
> Date: Mon, 14 Mar 2011 13:37:36 -0400
> Subject: [PATCH] ext4: Remove block bitmap initialization in ext4_new_inode()
>
> We are initializing the block bitmap in ext4_new_inode(), and as far
> as I can tell, there's no reason to do it.  So remove it to simplify
> things.
>
> Signed-off-by: "Theodore Ts'o" <tytso@....edu>
> ---
>  fs/ext4/ialloc.c |   36 ------------------------------------
>  1 files changed, 0 insertions(+), 36 deletions(-)
>
> diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
> index 2fd3b0e..f79432a 100644
> --- a/fs/ext4/ialloc.c
> +++ b/fs/ext4/ialloc.c
> @@ -936,42 +936,6 @@ repeat_in_this_group:
>        goto out;
>
>  got:
> -       /* We may have to initialize the block bitmap if it isn't already */
> -       if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
> -           gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) {
> -               struct buffer_head *block_bitmap_bh;
> -
> -               block_bitmap_bh = ext4_read_block_bitmap(sb, group);
> -               BUFFER_TRACE(block_bitmap_bh, "get block bitmap access");
> -               err = ext4_journal_get_write_access(handle, block_bitmap_bh);
> -               if (err) {
> -                       brelse(block_bitmap_bh);
> -                       goto fail;
> -               }
> -
> -               free = 0;
> -               ext4_lock_group(sb, group);
> -               /* recheck and clear flag under lock if we still need to */
> -               if (gdp->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) {
> -                       free = ext4_free_blocks_after_init(sb, group, gdp);
> -                       gdp->bg_flags &= cpu_to_le16(~EXT4_BG_BLOCK_UNINIT);
> -                       ext4_free_blks_set(sb, gdp, free);
> -                       gdp->bg_checksum = ext4_group_desc_csum(sbi, group,
> -                                                               gdp);
> -               }
> -               ext4_unlock_group(sb, group);
> -
> -               /* Don't need to dirty bitmap block if we didn't change it */
> -               if (free) {
> -                       BUFFER_TRACE(block_bitmap_bh, "dirty block bitmap");
> -                       err = ext4_handle_dirty_metadata(handle,
> -                                                       NULL, block_bitmap_bh);
> -               }
> -
> -               brelse(block_bitmap_bh);
> -               if (err)
> -                       goto fail;
> -       }
>        BUFFER_TRACE(group_desc_bh, "call ext4_handle_dirty_metadata");
>        err = ext4_handle_dirty_metadata(handle, NULL, group_desc_bh);
>        if (err)
> --
> 1.7.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ