[U-Boot] [PATCH v3 13/13] ext4: initialize full inode for inodes bigger than 128 bytes

Lukasz Majewski l.majewski at samsung.com
Mon Aug 29 16:11:20 CEST 2016


Hi Stefan,

> Make sure the the extra_isize field (offset 128) is initialized to 0
	    ^^^ that ?

> to mark any extra data as invalid.
> 
> Signed-off-by: Stefan Brüns <stefan.bruens at rwth-aachen.de>
> ---
>  fs/ext4/ext4_write.c | 12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
> 
> v3: Patch added to series
> 
> diff --git a/fs/ext4/ext4_write.c b/fs/ext4/ext4_write.c
> index 81a750b..38fbf68 100644
> --- a/fs/ext4/ext4_write.c
> +++ b/fs/ext4/ext4_write.c
> @@ -454,7 +454,7 @@ static int ext4fs_delete_file(int inodeno)
>  		node_inode->data = ext4fs_root;
>  		node_inode->ino = inodeno;
>  		node_inode->inode_read = 0;
> -		memcpy(&(node_inode->inode), &inode, sizeof(struct
> ext2_inode));
> +		memcpy(&(node_inode->inode), &inode, fs->inodesz);
>  
>  		for (i = 0; i < no_blocks; i++) {
>  			blknr =
> read_allocated_block(&(node_inode->inode), i); @@ -560,7 +560,7 @@
> static int ext4fs_delete_file(int inodeno) 
>  	read_buffer = read_buffer + blkoff;
>  	inode_buffer = (struct ext2_inode *)read_buffer;
> -	memset(inode_buffer, '\0', sizeof(struct ext2_inode));
> +	memset(inode_buffer, '\0', fs->inodesz);
>  
>  	/* write the inode to original position in inode table */
>  	if (ext4fs_put_metadata(start_block_address, blkno))
> @@ -866,7 +866,7 @@ int ext4fs_write(const char *fname, unsigned char
> *buffer, ALLOC_CACHE_ALIGN_BUFFER(char, filename, 256);
>  	memset(filename, 0x00, 256);
>  
> -	g_parent_inode = zalloc(sizeof(struct ext2_inode));
> +	g_parent_inode = zalloc(fs->inodesz);
>  	if (!g_parent_inode)
>  		goto fail;
>  
> @@ -969,8 +969,7 @@ int ext4fs_write(const char *fname, unsigned char
> *buffer, if (ext4fs_log_journal(temp_ptr, parent_itable_blkno))
>  			goto fail;
>  
> -		memcpy(temp_ptr + blkoff, g_parent_inode,
> -			sizeof(struct ext2_inode));
> +		memcpy(temp_ptr + blkoff, g_parent_inode,
> fs->inodesz); if (ext4fs_put_metadata(temp_ptr, parent_itable_blkno))
>  			goto fail;
>  	} else {
> @@ -978,8 +977,7 @@ int ext4fs_write(const char *fname, unsigned char
> *buffer,
>  		 * If parent and child fall in same inode table block
>  		 * both should be kept in 1 buffer
>  		 */
> -		memcpy(temp_ptr + blkoff, g_parent_inode,
> -		       sizeof(struct ext2_inode));
> +		memcpy(temp_ptr + blkoff, g_parent_inode,
> fs->inodesz); gd_index--;
>  		if (ext4fs_put_metadata(temp_ptr, itable_blkno))
>  			goto fail;

Reviewed-by: Lukasz Majewski <l.majewski at samsung.com> 

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list