From ca3f4e3a9c4e9b2ea9229fa913b8ea269e7e6e34 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Wed, 21 May 2025 15:43:01 -0700 Subject: [PATCH] fuse2fs: replace ext2fs_{read,write}_inode with fuse2fs_{read,write}_inode Signed-off-by: Darrick J. Wong Link: https://lore.kernel.org/r/174786678229.1384866.9795826246954895736.stgit@frogsfrogsfrogs Signed-off-by: Theodore Ts'o --- misc/fuse2fs.c | 138 ++++++++++++++++----------------------------------------- 1 file changed, 39 insertions(+), 99 deletions(-) diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c index 42a5c91..58a3c8c 100644 --- a/misc/fuse2fs.c +++ b/misc/fuse2fs.c @@ -383,17 +383,14 @@ 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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) return translate_error(fs, ino, err); increment_version(&inode); EXT4_INODE_SET_XTIME(i_ctime, &now, &inode); - err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, ino, &inode); if (err) return translate_error(fs, ino, err); @@ -408,9 +405,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) return translate_error(fs, ino, err); @@ -426,8 +421,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, ino, &inode); if (err) return translate_error(fs, ino, err); @@ -449,9 +443,7 @@ static int update_mtime(ext2_filsys fs, ext2_ino_t ino, return 0; } - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) return translate_error(fs, ino, err); @@ -460,8 +452,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, ino, &inode); if (err) return translate_error(fs, ino, err); @@ -762,9 +753,7 @@ static int stat_inode(ext2_filsys fs, ext2_ino_t ino, struct stat *statbuf) int ret = 0; struct timespec tv; - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) return translate_error(fs, ino, err); @@ -1116,8 +1105,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, child, &inode); if (err) { ret = translate_error(fs, child, err); goto out2; @@ -1185,8 +1173,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, parent, &inode); if (err) { ret = translate_error(fs, parent, err); goto out2; @@ -1224,9 +1211,7 @@ static int op_mkdir(const char *path, mode_t mode) dbg_printf(ff, "%s: created ino=%d/path=%s in dir=%d\n", __func__, child, node_name, parent); - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, child, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, child, &inode); if (err) { ret = translate_error(fs, child, err); goto out2; @@ -1241,8 +1226,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, child, &inode); if (err) { ret = translate_error(fs, child, err); goto out2; @@ -1362,9 +1346,7 @@ static int remove_inode(struct fuse2fs *ff, ext2_ino_t ino) struct ext2_inode_large inode; int ret = 0; - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out; @@ -1414,8 +1396,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out; @@ -1551,9 +1532,7 @@ static int __op_rmdir(struct fuse2fs *ff, const char *path) if (rds.parent) { dbg_printf(ff, "%s: decr dir=%d link count\n", __func__, rds.parent); - err = ext2fs_read_inode_full(fs, rds.parent, - EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, rds.parent, &inode); if (err) { ret = translate_error(fs, rds.parent, err); goto out; @@ -1563,9 +1542,7 @@ static int __op_rmdir(struct fuse2fs *ff, const char *path) ret = update_mtime(fs, rds.parent, &inode); if (ret) goto out; - err = ext2fs_write_inode_full(fs, rds.parent, - EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, rds.parent, &inode); if (err) { ret = translate_error(fs, rds.parent, err); goto out; @@ -1663,9 +1640,7 @@ static int op_symlink(const char *src, const char *dest) dbg_printf(ff, "%s: symlinking ino=%d/name=%s to dir=%d\n", __func__, child, node_name, parent); - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, child, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, child, &inode); if (err) { ret = translate_error(fs, child, err); goto out2; @@ -1678,8 +1653,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, child, &inode); if (err) { ret = translate_error(fs, child, err); goto out2; @@ -2012,9 +1986,7 @@ static int op_link(const char *src, const char *dest) goto out2; } - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out2; @@ -2029,8 +2001,7 @@ static int op_link(const char *src, const char *dest) if (ret) goto out2; - err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out2; @@ -2154,9 +2125,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out; @@ -2195,8 +2164,7 @@ static int op_chmod(const char *path, mode_t mode if (ret) goto out; - err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out; @@ -2232,9 +2200,7 @@ static int op_chown(const char *path, uid_t owner, gid_t group dbg_printf(ff, "%s: path=%s owner=%d group=%d ino=%d\n", __func__, path, owner, group, ino); - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out; @@ -2273,8 +2239,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out; @@ -3342,8 +3307,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, child, &inode); if (err) { ret = translate_error(fs, child, err); goto out2; @@ -3481,9 +3445,7 @@ static int op_utimens(const char *path, const struct timespec ctv[2] if (ret) goto out; - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out; @@ -3507,8 +3469,7 @@ static int op_utimens(const char *path, const struct timespec ctv[2] if (ret) goto out; - err = ext2fs_write_inode_full(fs, ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, ino, &inode); if (err) { ret = translate_error(fs, ino, err); goto out; @@ -3543,9 +3504,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3565,9 +3524,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3582,8 +3539,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3599,9 +3555,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3621,9 +3575,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3636,8 +3588,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3678,9 +3629,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3727,9 +3676,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3748,8 +3695,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -3943,9 +3889,7 @@ static int fallocate_helper(struct fuse_file_info *fp, int mode, off_t offset, if (!fs_can_allocate(ff, len / fs->blocksize)) return -ENOSPC; - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, fh->ino, &inode); if (err) return err; fsize = EXT2_I_SIZE(&inode); @@ -3974,8 +3918,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -4084,9 +4027,7 @@ static int punch_helper(struct fuse_file_info *fp, int mode, off_t offset, dbg_printf(ff, "%s: ino=%d mode=0x%x start=%llu end=%llu\n", __func__, fh->ino, mode, start, end); - memset(&inode, 0, sizeof(inode)); - err = ext2fs_read_inode_full(fs, fh->ino, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_read_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); @@ -4117,8 +4058,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, EXT2_INODE(&inode), - sizeof(inode)); + err = fuse2fs_write_inode(fs, fh->ino, &inode); if (err) return translate_error(fs, fh->ino, err); -- 1.8.3.1