[Ocfs2-tools-devel] tunefs.ocfs2: Don't set incompat flags unless we're really changing slots

tao.ma tao.ma at oracle.com
Sun Sep 23 19:32:28 PDT 2007


sob.
Mark Fasheh wrote:
> opts.num_slots is initialized to zero, which is always less than max_slots
> on a valid ocfs2 file system. If tunefs.ocfs2 is called at all for anything,
> even without "-N" the test for setting the removing-slots incompat flag
> succeeds because it's not explicitely checking for zero.
>
> This means that simple operations like changing mount type leave the
> incompat bit set in the super block, rendering the file system unmountable
> until fsck.ocfs2 is run.
>
> Signed-off-by: Mark Fasheh <mark.fasheh at oracle.com>
> ---
>  tunefs.ocfs2/tunefs.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/tunefs.ocfs2/tunefs.c b/tunefs.ocfs2/tunefs.c
> index 4bb9f82..fbdb9e3 100644
> --- a/tunefs.ocfs2/tunefs.c
> +++ b/tunefs.ocfs2/tunefs.c
> @@ -1452,7 +1452,8 @@ int main(int argc, char **argv)
>  	}
>  
>  	/* Set resize incompat flag on superblock */
> -	if (opts.num_blocks || opts.num_slots < max_slots) {
> +	if (opts.num_blocks ||
> +	    (opts.num_slots && opts.num_slots < max_slots)) {
>  		if (opts.num_blocks)
>  			OCFS2_RAW_SB(fs->fs_super)->s_feature_incompat |=
>  				OCFS2_FEATURE_INCOMPAT_RESIZE_INPROG;
>   



More information about the Ocfs2-tools-devel mailing list