Whamcloud - gitweb
fuse2fs: replace ext2fs_{read,write}_inode with fuse2fs_{read,write}_inode
authorDarrick J. Wong <djwong@kernel.org>
Wed, 21 May 2025 22:43:01 +0000 (15:43 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 23 May 2025 13:41:20 +0000 (09:41 -0400)
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Link: https://lore.kernel.org/r/174786678229.1384866.9795826246954895736.stgit@frogsfrogsfrogs
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/fuse2fs.c

index 42a5c91..58a3c8c 100644 (file)
@@ -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);