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: <CAPLK-i_ZzC=xoPKe6jO9gYdpr+HCiw5_=eW8B65W-SrW7uhD_w@mail.gmail.com>
Date:   Fri, 31 Aug 2018 16:00:05 -0400
From:   Shehbaz Jaffer <shehbazjaffer007@...il.com>
To:     adilger@...ger.ca
Cc:     linux-ext4@...r.kernel.org
Subject: Re: ext4 backup super block update frequency

Thank you for your reply.

struct ext4_super_block contains various values like s_inodes_count,
s_free_inodes_count etc. that would vary after each file creation. If
backup super blocks do not get updated, backup will continue having
these values same as that at file system creation time.

If the primary super block is no longer available due to
corruption/bad cable, HBA error, does ext4 rely on the updated super
block value(s) recorded in journal to restore the primary super block?

Thanks,
Shehbaz
On Fri, Aug 31, 2018 at 3:21 PM Andreas Dilger <adilger@...ger.ca> wrote:
>
> On Aug 31, 2018, at 10:40 AM, Shehbaz Jaffer <shehbazjaffer007@...il.com> wrote:
> >
> > Hi All,
> >
> > I am trying to study how backup superblocks are updated and used in
> > the ext4 file system. I create a 2GB file system. This creates 5
> > backup superblocks with the sparse sb option. I then check the diff of
> > the backup blocks before and after multiple mount, write(2) fsync(2)
> > and close(2) and unmount operations.
> >
> > I can see the primary superblock get updated but I do not see the
> > backup super blocks being updated. My intuition is that the backup
> > blocks are only present so that the recovery can be done by replaying
> > the journal on the backup superblock. Are they updated each time the
> > journal gets full so that the "refreshed" journal can now be replayed
> > on updated backup superblock in case of a crash?
> > If this is incorrect, at what frequency do backup superblocks updated?
> >
> > If we compare this behavior with BtrFS, I can see that for each update
> > on fs tree, the primary block (at offset 64KB) and backup superblock
> > (at 64MB) gets updated.
>
> The backup ext4 superblocks are never updated by the kernel, only after
> a successful e2fsck, tune2fs, resize2fs, or other userspace operation.
>
> This avoids clobbering the backups with bad data if the kernel has a bug
> or device error (e.g. bad cable, HBA, etc).
>
> Cheers, Andreas
>
>
>
>
>


-- 
Shehbaz Jaffer

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ