From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Mon, 29 Aug 2016 16:11:20 +0200 Subject: [U-Boot] [PATCH v3 13/13] ext4: initialize full inode for inodes bigger than 128 bytes In-Reply-To: <24e16bad79064d0fbb90658b2c0fe4af@rwthex-w2-b.rwth-ad.de> References: <20160828204238.10809-1-stefan.bruens@rwth-aachen.de> <24e16bad79064d0fbb90658b2c0fe4af@rwthex-w2-b.rwth-ad.de> Message-ID: <20160829161120.7a953acc@amdc2363> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > 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 -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group