[Top] [All Lists]

REVIEW: xfs_repair fixes for bad directories

To: "xfs@xxxxxxxxxxx" <xfs@xxxxxxxxxxx>
Subject: REVIEW: xfs_repair fixes for bad directories
From: "Barry Naujok" <bnaujok@xxxxxxx>
Date: Tue, 01 Jul 2008 18:00:17 +1000
Organization: SGI
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Opera Mail/9.50 (Win32)
Two issues have been encounted with xfs_repair and badly corrupted

1. A huge size (inode di_size) can cause malloc which will fail.
   Patch dir_size_check.patch checks for a valid directory size
   and if it's bad, junks the directory. The di_size for a dir
   only counts the data blocks being used, not all the other
   associated metadata. This is limited to 32GB by the
   XFS_DIR2_LEAF_OFFSET value in XFS. Anything greater than this
   must be invalid.

2. An update a while ago to xfs_repair attempts to fix invalid
   ".." entries for subdirectories where there is a valid parent
   with the appropriate entry. It was a partial fix that never
   did the full job, especially if the subdirectory was short-
   form or it has already been processed.

   Patch fix_dir_rebuild_without_dotdot_entry.patch creates a
   post-processing queue after the main scan to update any
   directories with an invalid ".." entry.

Both these patches sit on top of the dinode.patch that has been
posted out for review previously.

Attachment: dinode.patch
Description: Text Data

Attachment: dir_size_check.patch
Description: Text Data

Attachment: fix_dir_rebuild_without_dotdot_entry.patch
Description: Text Data

<Prev in Thread] Current Thread [Next in Thread>