[Ocfs2-tools-devel] [PATCH 1/4] Ocfs2-tools: Classify duplicate prompt codes in fsck.ocfs2.

Joel Becker Joel.Becker at oracle.com
Thu Jul 2 14:05:00 PDT 2009


[Sorry it took me so long to review these]

On Fri, Jun 26, 2009 at 10:49:19AM +0800, Tristan Ye wrote:
> fsck.ocfs2 is supposed to only use each prompt code once. However,
> about four of the codes are used in multiple places. We therefore
> should make distinct codes for each case.
> 
> Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
> ---
>  fsck.ocfs2/fsck.ocfs2.checks.8.in |   68 ++++++++++++++++++++++++++++++++++--
>  fsck.ocfs2/journal.c              |    6 ++--
>  fsck.ocfs2/pass1.c                |    8 ++--
>  fsck.ocfs2/xattr.c                |    7 ++--
>  4 files changed, 75 insertions(+), 14 deletions(-)
> 
> diff --git a/fsck.ocfs2/fsck.ocfs2.checks.8.in b/fsck.ocfs2/fsck.ocfs2.checks.8.in
> index b780561..2b8627f 100644
> --- a/fsck.ocfs2/fsck.ocfs2.checks.8.in
> +++ b/fsck.ocfs2/fsck.ocfs2.checks.8.in
> @@ -473,6 +473,24 @@ Answering yes to this question updates the inode's i_size to match the amount
>  of data referenced by the extent lists.  It is vitally important that i_size
>  matches the extent lists and so answering yes is strongly encouraged.
>  
> +.SS "INODE_SPARSE_SIZE"
> +Certain inodes record the size of the data they reference in an i_size field.
> +This can be the number of bytes in a file, directory, or symlink target
> +which are stored in data mapped by extents of clusters.  This error occurs
> +when the extent lists are walked and the amount of data found does not match
> +what is stored in i_size.

  Add "A sparse inode was found that had data allocated past its
i_size."

> +Answering yes to this question updates the inode's i_size to match the amount
> +of data referenced by the extent lists.  It is vitally important that i_size
> +matches the extent lists and so answering yes is strongly encouraged.

	"Answering yes to this question will update the inode's i_size
to cover all of its allocated storage.  It is vitally ..."

> +.SS "INODE_INLINE_SIZE"
> +Inlined inodes store the max inline data size in i_size, this error occurs
> +when the file size of an inlined inode exceeds the max inline data size.

"Inodes can only fit a certain amount of inline data.  This inode has
its data inline but claims an i_size larger than will actually fit."

> +Answering yes to this question updates the inode's i_size to max inline data
> +size.

... "updates the inode's i_size to the maximum available inline space."


> +
>  .SS "INODE_CLUSTERS"
>  Inodes contain a record of how many clusters are allocated to them.  An inode
>  was found whose recorded number of clusters doesn't match the number of blocks
> @@ -481,6 +499,20 @@ that were found associated with the inode.
>  Answering yes resets the inode's number of clusters to reflect the number
>  of blocks that were associated with the file.
>  
> +.SS "INODE_SPARSE_CLUSTERS"
> +Inodes contain a record of how many clusters are allocated to them.  An inode
> +was found whose recorded number of clusters doesn't match the number of blocks
> +that were found associated with the inode.

	"A sparse inode was found"

> +Answering yes resets the inode's number of clusters to reflect the number
> +of blocks that were associated with the file.
> +
> +.SS "INODE_INLINE_CLUSTERS"
> +Inlined inode should not have allocated clusters.  An inode who has inline data
> +flag set was found with clusters allocated.
> +
> +Answering yes resets the inode's number of clusters to zero.
> +
>  .SS "LALLOC_REPAIR"
>  An active local allocator did not accurately reflect the set of clusters that
>  are free and in use in its region.
> @@ -710,10 +742,28 @@ Answering yes creates the orphan directory in the system directory.
>  
>  .SS "JOURNAL_FILE_INVALID"
>  OCFS2 uses JDB for journalling and some journal files exist in the
> -system directory. Fsck has found some journal file is whether empty or has
> -bad journal superblock and would like to fix it for future use.
> +system directory. Fsck has found some journal files are invalid.

	"... journal files that are invalid."

> +Answering yes to regenerate the journal file.

	"Answering yes to this question will regenerate the invalid
journal files."

> +.SS "JOURNAL_UNKNOWN_FEATURE"
> +Fsck has found some journal files have unknown features, however, other
> +journals have only known features, so this is likely a corruption.
> +If you think your filesystem may be newer than this version of fsck.ocfs2,
> +say N here and grab the latest version of fsck.ocfs2.

	"... some journal files with unknown features.  Other journals
on the filesystem have only known features, so this is likely a
corruption. If you ..."

> +Answering yes resets the journal features to math other journals.

	"match other journals"

> +.SS "JOURNAL_MISS_FEATURE"

	JOURNAL_MISSING_FEATURE

> +Fsck has found some journal files are missing features that are set on
> +other journal files.

	"Some journal files have features that are not set on all
journal files.  All journals on a filesystem should have the same set of
features."

> -Answering yes reformats the journal file in the system directory.
> +Answering yes sets these missing features.

	"Answering yes will set all journals to the union of set
features."

> +.SS "JOURNAL_TOO_SMALL"
> +Fsck has found some journal files are too small.
> +
> +Answering yes extends these journals.
>  
>  .SS "RECOVER_CLUSTER_INFO"
>  The currently active cluster stack is different than the one the filesystem
> @@ -752,12 +802,22 @@ does not match the number of entries found by fsck.
>  
>  Answering yes will change this to the correct count.
>  
> -.SS "XATTR_OFFSET_INVALID"
> +.SS "XATTR_ENTRY_INVALID"
> +Extended attribute entry refers to a used area.

	"An extended attribute entry points to already used space."

> +Answering yes will remove this entry.
> +
> +.SS "XATTR_NAME_OFFSET_INVALID"
>  The name_offset field of an extended attribute entry is not correct.
>  Without a correct name_offset field, the entry cannot be used.
>  
>  Answering yes will remove this entry.
>  
> +.SS "XATTR_VALUE_INVALID"
> +Extended attribute entry's value/name pair refers to a used area.

	"The value region of an extended attribute points to already
used space."

> +Answering yes will remove this entry.
> +
>  .SS "XATTR_LOCATION_INVALID"
>  The xe_local field and xe_value_size field of an extended attribute
>  entry does not match. So the entry cannot be used.


The code changes look fine.

Joel

-- 

"When arrows don't penetrate, see...
 Cupid grabs the pistol."

Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127



More information about the Ocfs2-tools-devel mailing list