Whamcloud - gitweb
fuse2fs: clean up open-coded ext2_inode_large -> ext2_inode casts
authorDarrick J. Wong <djwong@kernel.org>
Wed, 21 May 2025 22:42:46 +0000 (15:42 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 23 May 2025 13:41:20 +0000 (09:41 -0400)
There's a typechecked helper for this now, so let's use it.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Link: https://lore.kernel.org/r/174786678211.1384866.6557992647185012616.stgit@frogsfrogsfrogs
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/fuse2fs.c

index 4fa000e..42a5c91 100644 (file)
@@ -384,7 +384,7 @@ static int update_ctime(ext2_filsys fs, ext2_ino_t ino,
 
        /* Otherwise we have to read-modify-write the inode */
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, ino, err);
@@ -392,7 +392,7 @@ static int update_ctime(ext2_filsys fs, ext2_ino_t ino,
        increment_version(&inode);
        EXT4_INODE_SET_XTIME(i_ctime, &now, &inode);
 
-       err = ext2fs_write_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err)
                return translate_error(fs, ino, err);
@@ -409,7 +409,7 @@ static int update_atime(ext2_filsys fs, ext2_ino_t ino)
        if (!(fs->flags & EXT2_FLAG_RW))
                return 0;
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, ino, err);
@@ -426,7 +426,7 @@ static int update_atime(ext2_filsys fs, ext2_ino_t ino)
                return 0;
        EXT4_INODE_SET_XTIME(i_atime, &now, &inode);
 
-       err = ext2fs_write_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err)
                return translate_error(fs, ino, err);
@@ -450,7 +450,7 @@ static int update_mtime(ext2_filsys fs, ext2_ino_t ino,
        }
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, ino, err);
@@ -460,7 +460,7 @@ static int update_mtime(ext2_filsys fs, ext2_ino_t ino,
        EXT4_INODE_SET_XTIME(i_ctime, &now, &inode);
        increment_version(&inode);
 
-       err = ext2fs_write_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err)
                return translate_error(fs, ino, err);
@@ -763,7 +763,7 @@ static int stat_inode(ext2_filsys fs, ext2_ino_t ino, struct stat *statbuf)
        struct timespec tv;
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, ino, err);
@@ -778,7 +778,7 @@ static int stat_inode(ext2_filsys fs, ext2_ino_t ino, struct stat *statbuf)
        statbuf->st_size = EXT2_I_SIZE(&inode);
        statbuf->st_blksize = fs->blocksize;
        statbuf->st_blocks = ext2fs_get_stat_i_blocks(fs,
-                                               (struct ext2_inode *)&inode);
+                                               EXT2_INODE(&inode));
        EXT4_INODE_GET_XTIME(i_atime, &tv, &inode);
 #if HAVE_STRUCT_STAT_ST_ATIM
        statbuf->st_atim = tv;
@@ -1108,7 +1108,7 @@ static int op_mknod(const char *path, mode_t mode, dev_t dev)
        inode.i_gid = ctxt->gid;
        ext2fs_set_i_gid_high(inode, ctxt->gid >> 16);
 
-       err = ext2fs_write_new_inode(fs, child, (struct ext2_inode *)&inode);
+       err = ext2fs_write_new_inode(fs, child, EXT2_INODE(&inode));
        if (err) {
                ret = translate_error(fs, child, err);
                goto out2;
@@ -1116,7 +1116,7 @@ static int op_mknod(const char *path, mode_t mode, dev_t dev)
 
        inode.i_generation = ff->next_generation++;
        init_times(&inode);
-       err = ext2fs_write_inode_full(fs, child, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, child, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, child, err);
@@ -1185,7 +1185,7 @@ static int op_mkdir(const char *path, mode_t mode)
                goto out2;
 
        /* Is the parent dir sgid? */
-       err = ext2fs_read_inode_full(fs, parent, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, parent, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err) {
                ret = translate_error(fs, parent, err);
@@ -1225,7 +1225,7 @@ static int op_mkdir(const char *path, mode_t mode)
                   node_name, parent);
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, child, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, child, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err) {
                ret = translate_error(fs, child, err);
@@ -1241,7 +1241,7 @@ static int op_mkdir(const char *path, mode_t mode)
        inode.i_generation = ff->next_generation++;
        init_times(&inode);
 
-       err = ext2fs_write_inode_full(fs, child, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, child, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, child, err);
@@ -1257,7 +1257,7 @@ static int op_mkdir(const char *path, mode_t mode)
                ret = translate_error(fs, child, err);
                goto out2;
        }
-       err = ext2fs_bmap2(fs, child, (struct ext2_inode *)&inode, NULL, 0, 0,
+       err = ext2fs_bmap2(fs, child, EXT2_INODE(&inode), NULL, 0, 0,
                           NULL, &blk);
        if (err) {
                ret = translate_error(fs, child, err);
@@ -1363,7 +1363,7 @@ static int remove_inode(struct fuse2fs *ff, ext2_ino_t ino)
        int ret = 0;
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -1401,8 +1401,8 @@ static int remove_inode(struct fuse2fs *ff, ext2_ino_t ino)
        if (err)
                goto write_out;
 
-       if (ext2fs_inode_has_valid_blocks2(fs, (struct ext2_inode *)&inode)) {
-               err = ext2fs_punch(fs, ino, (struct ext2_inode *)&inode, NULL,
+       if (ext2fs_inode_has_valid_blocks2(fs, EXT2_INODE(&inode))) {
+               err = ext2fs_punch(fs, ino, EXT2_INODE(&inode), NULL,
                                   0, ~0ULL);
                if (err) {
                        ret = translate_error(fs, ino, err);
@@ -1414,7 +1414,7 @@ static int remove_inode(struct fuse2fs *ff, ext2_ino_t ino)
                                  LINUX_S_ISDIR(inode.i_mode));
 
 write_out:
-       err = ext2fs_write_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -1552,7 +1552,7 @@ static int __op_rmdir(struct fuse2fs *ff, const char *path)
                dbg_printf(ff, "%s: decr dir=%d link count\n", __func__,
                           rds.parent);
                err = ext2fs_read_inode_full(fs, rds.parent,
-                                            (struct ext2_inode *)&inode,
+                                            EXT2_INODE(&inode),
                                             sizeof(inode));
                if (err) {
                        ret = translate_error(fs, rds.parent, err);
@@ -1564,7 +1564,7 @@ static int __op_rmdir(struct fuse2fs *ff, const char *path)
                if (ret)
                        goto out;
                err = ext2fs_write_inode_full(fs, rds.parent,
-                                             (struct ext2_inode *)&inode,
+                                             EXT2_INODE(&inode),
                                              sizeof(inode));
                if (err) {
                        ret = translate_error(fs, rds.parent, err);
@@ -1664,7 +1664,7 @@ static int op_symlink(const char *src, const char *dest)
                   child, node_name, parent);
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, child, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, child, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err) {
                ret = translate_error(fs, child, err);
@@ -1678,7 +1678,7 @@ static int op_symlink(const char *src, const char *dest)
        inode.i_generation = ff->next_generation++;
        init_times(&inode);
 
-       err = ext2fs_write_inode_full(fs, child, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, child, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, child, err);
@@ -2013,7 +2013,7 @@ static int op_link(const char *src, const char *dest)
        }
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -2029,7 +2029,7 @@ static int op_link(const char *src, const char *dest)
        if (ret)
                goto out2;
 
-       err = ext2fs_write_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -2155,7 +2155,7 @@ static int op_chmod(const char *path, mode_t mode
        dbg_printf(ff, "%s: path=%s mode=0%o ino=%d\n", __func__, path, mode, ino);
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -2195,7 +2195,7 @@ static int op_chmod(const char *path, mode_t mode
        if (ret)
                goto out;
 
-       err = ext2fs_write_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -2233,7 +2233,7 @@ static int op_chown(const char *path, uid_t owner, gid_t group
                   path, owner, group, ino);
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -2273,7 +2273,7 @@ static int op_chown(const char *path, uid_t owner, gid_t group
        if (ret)
                goto out;
 
-       err = ext2fs_write_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -3328,13 +3328,13 @@ static int op_create(const char *path, mode_t mode, struct fuse_file_info *fp)
 
                inode.i_flags &= ~EXT4_EXTENTS_FL;
                ret = ext2fs_extent_open2(fs, child,
-                                         (struct ext2_inode *)&inode, &handle);
+                                         EXT2_INODE(&inode), &handle);
                if (ret)
                        return ret;
                ext2fs_extent_free(handle);
        }
 
-       err = ext2fs_write_new_inode(fs, child, (struct ext2_inode *)&inode);
+       err = ext2fs_write_new_inode(fs, child, EXT2_INODE(&inode));
        if (err) {
                ret = translate_error(fs, child, err);
                goto out2;
@@ -3342,7 +3342,7 @@ static int op_create(const char *path, mode_t mode, struct fuse_file_info *fp)
 
        inode.i_generation = ff->next_generation++;
        init_times(&inode);
-       err = ext2fs_write_inode_full(fs, child, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, child, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, child, err);
@@ -3482,7 +3482,7 @@ static int op_utimens(const char *path, const struct timespec ctv[2]
                goto out;
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -3507,7 +3507,7 @@ static int op_utimens(const char *path, const struct timespec ctv[2]
        if (ret)
                goto out;
 
-       err = ext2fs_write_inode_full(fs, ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err) {
                ret = translate_error(fs, ino, err);
@@ -3544,7 +3544,7 @@ static int ioctl_getflags(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        FUSE2FS_CHECK_MAGIC(fs, fh, FUSE2FS_FILE_MAGIC);
        dbg_printf(ff, "%s: ino=%d\n", __func__, fh->ino);
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3566,7 +3566,7 @@ static int ioctl_setflags(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        FUSE2FS_CHECK_MAGIC(fs, fh, FUSE2FS_FILE_MAGIC);
        dbg_printf(ff, "%s: ino=%d\n", __func__, fh->ino);
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3582,7 +3582,7 @@ static int ioctl_setflags(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        if (ret)
                return ret;
 
-       err = ext2fs_write_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3600,7 +3600,7 @@ static int ioctl_getversion(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        FUSE2FS_CHECK_MAGIC(fs, fh, FUSE2FS_FILE_MAGIC);
        dbg_printf(ff, "%s: ino=%d\n", __func__, fh->ino);
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3622,7 +3622,7 @@ static int ioctl_setversion(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        FUSE2FS_CHECK_MAGIC(fs, fh, FUSE2FS_FILE_MAGIC);
        dbg_printf(ff, "%s: ino=%d\n", __func__, fh->ino);
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3636,7 +3636,7 @@ static int ioctl_setversion(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        if (ret)
                return ret;
 
-       err = ext2fs_write_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3679,7 +3679,7 @@ static int ioctl_fsgetxattr(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        FUSE2FS_CHECK_MAGIC(fs, fh, FUSE2FS_FILE_MAGIC);
        dbg_printf(ff, "%s: ino=%d\n", __func__, fh->ino);
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3728,7 +3728,7 @@ static int ioctl_fssetxattr(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        FUSE2FS_CHECK_MAGIC(fs, fh, FUSE2FS_FILE_MAGIC);
        dbg_printf(ff, "%s: ino=%d\n", __func__, fh->ino);
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3748,7 +3748,7 @@ static int ioctl_fssetxattr(struct fuse2fs *ff, struct fuse2fs_file_handle *fh,
        if (ret)
                return ret;
 
-       err = ext2fs_write_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -3944,7 +3944,7 @@ static int fallocate_helper(struct fuse_file_info *fp, int mode, off_t offset,
                return -ENOSPC;
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return err;
@@ -3954,7 +3954,7 @@ static int fallocate_helper(struct fuse_file_info *fp, int mode, off_t offset,
        flags = (mode & FL_KEEP_SIZE_FLAG ? 0 :
                        EXT2_FALLOCATE_INIT_BEYOND_EOF);
        err = ext2fs_fallocate(fs, flags, fh->ino,
-                              (struct ext2_inode *)&inode,
+                              EXT2_INODE(&inode),
                               ~0ULL, start, end - start + 1);
        if (err && err != EXT2_ET_BLOCK_ALLOC_FAIL)
                return translate_error(fs, fh->ino, err);
@@ -3963,7 +3963,7 @@ static int fallocate_helper(struct fuse_file_info *fp, int mode, off_t offset,
        if (!(mode & FL_KEEP_SIZE_FLAG)) {
                if ((__u64) offset + len > fsize) {
                        err = ext2fs_inode_size_set(fs,
-                                               (struct ext2_inode *)&inode,
+                                               EXT2_INODE(&inode),
                                                offset + len);
                        if (err)
                                return translate_error(fs, fh->ino, err);
@@ -3974,7 +3974,7 @@ static int fallocate_helper(struct fuse_file_info *fp, int mode, off_t offset,
        if (err)
                return err;
 
-       err = ext2fs_write_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -4001,7 +4001,7 @@ static errcode_t clean_block_middle(ext2_filsys fs, ext2_ino_t ino,
                        return err;
        }
 
-       err = ext2fs_bmap2(fs, ino, (struct ext2_inode *)inode, *buf, 0,
+       err = ext2fs_bmap2(fs, ino, EXT2_INODE(inode), *buf, 0,
                           offset / fs->blocksize, &retflags, &blk);
        if (err)
                return err;
@@ -4036,7 +4036,7 @@ static errcode_t clean_block_edge(ext2_filsys fs, ext2_ino_t ino,
                        return err;
        }
 
-       err = ext2fs_bmap2(fs, ino, (struct ext2_inode *)inode, *buf, 0,
+       err = ext2fs_bmap2(fs, ino, EXT2_INODE(inode), *buf, 0,
                           offset / fs->blocksize, &retflags, &blk);
        if (err)
                return err;
@@ -4085,7 +4085,7 @@ static int punch_helper(struct fuse_file_info *fp, int mode, off_t offset,
                   fh->ino, mode, start, end);
 
        memset(&inode, 0, sizeof(inode));
-       err = ext2fs_read_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                     sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);
@@ -4107,7 +4107,7 @@ static int punch_helper(struct fuse_file_info *fp, int mode, off_t offset,
 
        /* Unmap full blocks in the middle */
        if (start <= end) {
-               err = ext2fs_punch(fs, fh->ino, (struct ext2_inode *)&inode,
+               err = ext2fs_punch(fs, fh->ino, EXT2_INODE(&inode),
                                   NULL, start, end);
                if (err)
                        return translate_error(fs, fh->ino, err);
@@ -4117,7 +4117,7 @@ static int punch_helper(struct fuse_file_info *fp, int mode, off_t offset,
        if (err)
                return err;
 
-       err = ext2fs_write_inode_full(fs, fh->ino, (struct ext2_inode *)&inode,
+       err = ext2fs_write_inode_full(fs, fh->ino, EXT2_INODE(&inode),
                                      sizeof(inode));
        if (err)
                return translate_error(fs, fh->ino, err);