Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • early-display
  • variant-emmc-nvme-boot
  • 2023-01-25
  • v3
  • variant-emmc-nvme-boot
  • 2020-06-01
7 results

ext4_common.c

Blame
  • Forked from Reform / reform-boundary-uboot
    Source project has a limited visibility.
    • Thomas Fitzsimmons's avatar
      54d68e93
      fs: ext4: Prevent infinite loop in ext4fs_iterate_dir · 54d68e93
      Thomas Fitzsimmons authored
      
      If the ext3 journal gets out of sync with what is written on disk, for
      example because of an unexpected power cut, ext4fs_read_file can
      return an all-zero directory entry.  In that case, ext4fs_iterate_dir
      would infinite loop.
      
      This patch detects when a directory entry's direntlen member is 0 and
      returns a failure status, which breaks out of the infinite loop.  As a
      result, U-Boot will not find files that may subsequently be recovered
      when the journal is replayed.
      
      This is better behaviour than hanging in an infinite loop, but as a
      further improvement maybe U-Boot could interpret the ext3 journal and
      actually find the unsynced entries.
      
      Signed-off-by: default avatarThomas Fitzsimmons <fitzsim@cisco.com>
      Reviewed-by: default avatarStefan Roese <sr@denx.de>
      54d68e93
      History
      fs: ext4: Prevent infinite loop in ext4fs_iterate_dir
      Thomas Fitzsimmons authored
      
      If the ext3 journal gets out of sync with what is written on disk, for
      example because of an unexpected power cut, ext4fs_read_file can
      return an all-zero directory entry.  In that case, ext4fs_iterate_dir
      would infinite loop.
      
      This patch detects when a directory entry's direntlen member is 0 and
      returns a failure status, which breaks out of the infinite loop.  As a
      result, U-Boot will not find files that may subsequently be recovered
      when the journal is replayed.
      
      This is better behaviour than hanging in an infinite loop, but as a
      further improvement maybe U-Boot could interpret the ext3 journal and
      actually find the unsynced entries.
      
      Signed-off-by: default avatarThomas Fitzsimmons <fitzsim@cisco.com>
      Reviewed-by: default avatarStefan Roese <sr@denx.de>