nilfs2: zero fill unused portion of super root block
The super root block is newly-allocated each time it is written back to disk, so unused portion of the block should be cleared. Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
This commit is contained in:
@@ -596,6 +596,16 @@ void nilfs_write_inode_common(struct inode *inode,
|
||||
raw_inode->i_flags = cpu_to_le32(ii->i_flags);
|
||||
raw_inode->i_generation = cpu_to_le32(inode->i_generation);
|
||||
|
||||
if (NILFS_ROOT_METADATA_FILE(inode->i_ino)) {
|
||||
struct the_nilfs *nilfs = inode->i_sb->s_fs_info;
|
||||
|
||||
/* zero-fill unused portion in the case of super root block */
|
||||
raw_inode->i_xattr = 0;
|
||||
raw_inode->i_pad = 0;
|
||||
memset((void *)raw_inode + sizeof(*raw_inode), 0,
|
||||
nilfs->ns_inode_size - sizeof(*raw_inode));
|
||||
}
|
||||
|
||||
if (has_bmap)
|
||||
nilfs_bmap_write(ii->i_bmap, raw_inode);
|
||||
else if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
|
||||
|
Reference in New Issue
Block a user