From: Gao Xiang Date: Wed, 5 Mar 2025 17:39:29 +0000 (+0800) Subject: erofs-utils: cleanup redundant logic in erofs_iflush() X-Git-Tag: accepted/tizen/unified/20250610.081809~29 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3b3e83a67a84b6963cb54a013a469facea22c6cf;p=platform%2Fupstream%2Ferofs-utils.git erofs-utils: cleanup redundant logic in erofs_iflush() No logic changes. Signed-off-by: Gao Xiang Link: https://lore.kernel.org/r/20250305173930.2223550-2-hsiangkao@linux.alibaba.com --- diff --git a/lib/inode.c b/lib/inode.c index 743e915..8c9a8ec 100644 --- a/lib/inode.c +++ b/lib/inode.c @@ -592,6 +592,7 @@ int erofs_iflush(struct erofs_inode *inode) struct erofs_inode_compact dic; struct erofs_inode_extended die; } u = {}; + union erofs_inode_i_u u1; int ret; if (inode->bh) @@ -599,6 +600,16 @@ int erofs_iflush(struct erofs_inode *inode) else off = erofs_iloc(inode); + if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) || + S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) + u1.rdev = cpu_to_le32(inode->u.i_rdev); + else if (is_inode_layout_compression(inode)) + u1.compressed_blocks = cpu_to_le32(inode->u.i_blocks); + else if (inode->datalayout == EROFS_INODE_CHUNK_BASED) + u1.c.format = cpu_to_le16(inode->u.chunkformat); + else + u1.raw_blkaddr = cpu_to_le32(inode->u.i_blkaddr); + switch (inode->inode_isize) { case sizeof(struct erofs_inode_compact): u.dic.i_format = cpu_to_le16(0 | (inode->datalayout << 1)); @@ -611,28 +622,7 @@ int erofs_iflush(struct erofs_inode *inode) u.dic.i_uid = cpu_to_le16((u16)inode->i_uid); u.dic.i_gid = cpu_to_le16((u16)inode->i_gid); - - switch (inode->i_mode & S_IFMT) { - case S_IFCHR: - case S_IFBLK: - case S_IFIFO: - case S_IFSOCK: - u.dic.i_u.rdev = cpu_to_le32(inode->u.i_rdev); - break; - - default: - if (is_inode_layout_compression(inode)) - u.dic.i_u.compressed_blocks = - cpu_to_le32(inode->u.i_blocks); - else if (inode->datalayout == - EROFS_INODE_CHUNK_BASED) - u.dic.i_u.c.format = - cpu_to_le16(inode->u.chunkformat); - else - u.dic.i_u.raw_blkaddr = - cpu_to_le32(inode->u.i_blkaddr); - break; - } + u.dic.i_u = u1; break; case sizeof(struct erofs_inode_extended): u.die.i_format = cpu_to_le16(1 | (inode->datalayout << 1)); @@ -648,28 +638,7 @@ int erofs_iflush(struct erofs_inode *inode) u.die.i_mtime = cpu_to_le64(inode->i_mtime); u.die.i_mtime_nsec = cpu_to_le32(inode->i_mtime_nsec); - - switch (inode->i_mode & S_IFMT) { - case S_IFCHR: - case S_IFBLK: - case S_IFIFO: - case S_IFSOCK: - u.die.i_u.rdev = cpu_to_le32(inode->u.i_rdev); - break; - - default: - if (is_inode_layout_compression(inode)) - u.die.i_u.compressed_blocks = - cpu_to_le32(inode->u.i_blocks); - else if (inode->datalayout == - EROFS_INODE_CHUNK_BASED) - u.die.i_u.c.format = - cpu_to_le16(inode->u.chunkformat); - else - u.die.i_u.raw_blkaddr = - cpu_to_le32(inode->u.i_blkaddr); - break; - } + u.die.i_u = u1; break; default: erofs_err("unsupported on-disk inode version of nid %llu",