# HG changeset patch # User Paul Boddie # Date 1642119035 -3600 # Node ID 472c1e2b030276d675ed88cea7877b87b1d3e704 # Parent 9708029fd8cdf42f41cd4d7ed24ce168ae5f4a08 Reordered functions and declarations. diff -r 9708029fd8cd -r 472c1e2b0302 libe2access/include/e2access/image.h --- a/libe2access/include/e2access/image.h Sat Jan 08 00:16:20 2022 +0100 +++ b/libe2access/include/e2access/image.h Fri Jan 14 01:10:35 2022 +0100 @@ -62,13 +62,13 @@ ext2_ino_t ino_dir, __u16 mode, __u16 uid, __u16 gid); +errcode_t image_remove_by_inode(ext2_filsys fs, ext2_ino_t ino); + void image_set_metadata(struct ext2_inode *inode, int clean, __u16 mode, __u16 uid, __u16 gid); errcode_t image_stat_inode(ext2_filsys fs, ext2_ino_t ino, struct stat *st); -errcode_t image_remove_by_inode(ext2_filsys fs, ext2_ino_t ino); - errcode_t image_unlink_by_name(ext2_filsys fs, ext2_ino_t ino_parent, const char *basename); diff -r 9708029fd8cd -r 472c1e2b0302 libe2access/lib/src/image.c --- a/libe2access/lib/src/image.c Sat Jan 08 00:16:20 2022 +0100 +++ b/libe2access/lib/src/image.c Fri Jan 14 01:10:35 2022 +0100 @@ -1,7 +1,7 @@ /* * Filesystem access functions. * - * Copyright (C) 2019, 2021 Paul Boddie + * Copyright (C) 2019, 2021, 2022 Paul Boddie * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -77,19 +77,6 @@ return ext2fs_write_new_inode(fs, *ino_file, &inode_file); } -/* Set the mode, user and group metadata for a file. */ - -void image_set_metadata(struct ext2_inode *inode, int clean, __u16 mode, - __u16 uid, __u16 gid) -{ - if (clean) - memset(inode, 0, sizeof(*inode)); - - inode->i_mode = mode; - inode->i_uid = uid; - inode->i_gid = gid; -} - /* Find an object in the given directory with the given name in the filesystem image, updating the name reference to refer to the next component. */ @@ -313,36 +300,6 @@ return 0; } -/* Copy file metadata into a stat structure. */ - -errcode_t image_stat_inode(ext2_filsys fs, ext2_ino_t ino, struct stat *st) -{ - struct ext2_inode inode; - errcode_t retval = ext2fs_read_inode(fs, ino, &inode); - - if (retval) - return retval; - - st->st_dev = 0; /* device identifier */ - st->st_ino = ino; - st->st_mode = inode.i_mode; - st->st_nlink = inode.i_links_count; - st->st_uid = inode_uid(inode); - st->st_gid = inode_gid(inode); - st->st_rdev = 0; /* special file device identifier */ - st->st_size = EXT2_I_SIZE(&inode); - st->st_blksize = fs->blocksize; - st->st_blocks = 0; /* number of 512 byte blocks allocated */ - st->st_atim.tv_sec = inode.i_atime; - st->st_atim.tv_nsec = 0; /* nanosecond resolution */ - st->st_mtim.tv_sec = inode.i_mtime; - st->st_mtim.tv_nsec = 0; - st->st_ctim.tv_sec = inode.i_ctime; - st->st_ctim.tv_nsec = 0; - - return 0; -} - /* Remove an inode. */ errcode_t image_remove_by_inode(ext2_filsys fs, ext2_ino_t ino) @@ -391,6 +348,49 @@ sizeof(inode)); } +/* Set the mode, user and group metadata for a file. */ + +void image_set_metadata(struct ext2_inode *inode, int clean, __u16 mode, + __u16 uid, __u16 gid) +{ + if (clean) + memset(inode, 0, sizeof(*inode)); + + inode->i_mode = mode; + inode->i_uid = uid; + inode->i_gid = gid; +} + +/* Copy file metadata into a stat structure. */ + +errcode_t image_stat_inode(ext2_filsys fs, ext2_ino_t ino, struct stat *st) +{ + struct ext2_inode inode; + errcode_t retval = ext2fs_read_inode(fs, ino, &inode); + + if (retval) + return retval; + + st->st_dev = 0; /* device identifier */ + st->st_ino = ino; + st->st_mode = inode.i_mode; + st->st_nlink = inode.i_links_count; + st->st_uid = inode_uid(inode); + st->st_gid = inode_gid(inode); + st->st_rdev = 0; /* special file device identifier */ + st->st_size = EXT2_I_SIZE(&inode); + st->st_blksize = fs->blocksize; + st->st_blocks = 0; /* number of 512 byte blocks allocated */ + st->st_atim.tv_sec = inode.i_atime; + st->st_atim.tv_nsec = 0; /* nanosecond resolution */ + st->st_mtim.tv_sec = inode.i_mtime; + st->st_mtim.tv_nsec = 0; + st->st_ctim.tv_sec = inode.i_ctime; + st->st_ctim.tv_nsec = 0; + + return 0; +} + /* Unlink a directory entry by name. */ errcode_t image_unlink_by_name(ext2_filsys fs, ext2_ino_t ino_parent,