Re: [PATCH] e2fsck: try write_primary_superblock() again when it failed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



friendly ping...

On 2021/4/13 11:19, Haotian Li wrote:
> Function write_primary_superblock() has two ways to flush
> superblock, byte-by-byte as default. It may use
> io_channel_write_byte() many times. If some errors occur
> during these funcs, the superblock may become inconsistent
> and produce checksum error.
>
> Try write_primary_superblock() with whole-block way again
> when it failed on byte-by-byte way.
> ---
>  lib/ext2fs/closefs.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/lib/ext2fs/closefs.c b/lib/ext2fs/closefs.c
> index 69cbdd8c..1fc27fb5 100644
> --- a/lib/ext2fs/closefs.c
> +++ b/lib/ext2fs/closefs.c
> @@ -223,10 +223,8 @@ static errcode_t write_primary_superblock(ext2_filsys fs,
>  		retval = io_channel_write_byte(fs->io,
>  			       SUPERBLOCK_OFFSET + (2 * write_idx), size,
>  					       new_super + write_idx);
> -		if (retval == EXT2_ET_UNIMPLEMENTED)
> -			goto fallback;
>  		if (retval)
> -			return retval;
> +			goto fallback;
>  	}
>  	memcpy(fs->orig_super, super, SUPERBLOCK_SIZE);
>  	return 0;




[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux