refactor: drop uid_t / gid_t types everywhere

This commit is contained in:
Marcus Holland-Moritz 2024-07-28 15:33:19 +02:00
parent 404d89908c
commit aa5f37bb99
5 changed files with 30 additions and 20 deletions

View File

@ -124,12 +124,13 @@ class filesystem_v2 {
file_stat getattr(inode_view entry) const { return impl_->getattr(entry); } file_stat getattr(inode_view entry) const { return impl_->getattr(entry); }
int access(inode_view entry, int mode, uid_t uid, gid_t gid) const { int access(inode_view entry, int mode, file_stat::uid_type uid,
file_stat::gid_type gid) const {
return impl_->access(entry, mode, uid, gid); return impl_->access(entry, mode, uid, gid);
} }
void access(inode_view entry, int mode, uid_t uid, gid_t gid, void access(inode_view entry, int mode, file_stat::uid_type uid,
std::error_code& ec) const { file_stat::gid_type gid, std::error_code& ec) const {
impl_->access(entry, mode, uid, gid, ec); impl_->access(entry, mode, uid, gid, ec);
} }
@ -252,10 +253,10 @@ class filesystem_v2 {
virtual int getattr(inode_view entry, file_stat* stbuf) const = 0; virtual int getattr(inode_view entry, file_stat* stbuf) const = 0;
virtual file_stat getattr(inode_view entry, std::error_code& ec) const = 0; virtual file_stat getattr(inode_view entry, std::error_code& ec) const = 0;
virtual file_stat getattr(inode_view entry) const = 0; virtual file_stat getattr(inode_view entry) const = 0;
virtual int virtual int access(inode_view entry, int mode, file_stat::uid_type uid,
access(inode_view entry, int mode, uid_t uid, gid_t gid) const = 0; file_stat::gid_type gid) const = 0;
virtual void access(inode_view entry, int mode, uid_t uid, gid_t gid, virtual void access(inode_view entry, int mode, file_stat::uid_type uid,
std::error_code& ec) const = 0; file_stat::gid_type gid, std::error_code& ec) const = 0;
virtual std::optional<directory_view> opendir(inode_view entry) const = 0; virtual std::optional<directory_view> opendir(inode_view entry) const = 0;
virtual std::optional<std::pair<inode_view, std::string>> virtual std::optional<std::pair<inode_view, std::string>>
readdir(directory_view dir, size_t offset) const = 0; readdir(directory_view dir, size_t offset) const = 0;

View File

@ -120,7 +120,8 @@ class metadata_v2 {
size_t dirsize(directory_view dir) const { return impl_->dirsize(dir); } size_t dirsize(directory_view dir) const { return impl_->dirsize(dir); }
int access(inode_view iv, int mode, uid_t uid, gid_t gid) const { int access(inode_view iv, int mode, file_stat::uid_type uid,
file_stat::gid_type gid) const {
return impl_->access(iv, mode, uid, gid); return impl_->access(iv, mode, uid, gid);
} }
@ -198,7 +199,8 @@ class metadata_v2 {
virtual size_t dirsize(directory_view dir) const = 0; virtual size_t dirsize(directory_view dir) const = 0;
virtual int access(inode_view iv, int mode, uid_t uid, gid_t gid) const = 0; virtual int access(inode_view iv, int mode, file_stat::uid_type uid,
file_stat::gid_type gid) const = 0;
virtual int open(inode_view iv) const = 0; virtual int open(inode_view iv) const = 0;

View File

@ -442,9 +442,10 @@ class filesystem_ final : public filesystem_v2::impl {
int getattr(inode_view entry, file_stat* stbuf) const override; int getattr(inode_view entry, file_stat* stbuf) const override;
file_stat getattr(inode_view entry, std::error_code& ec) const override; file_stat getattr(inode_view entry, std::error_code& ec) const override;
file_stat getattr(inode_view entry) const override; file_stat getattr(inode_view entry) const override;
int access(inode_view entry, int mode, uid_t uid, gid_t gid) const override; int access(inode_view entry, int mode, file_stat::uid_type uid,
void access(inode_view entry, int mode, uid_t uid, gid_t gid, file_stat::gid_type gid) const override;
std::error_code& ec) const override; void access(inode_view entry, int mode, file_stat::uid_type uid,
file_stat::gid_type gid, std::error_code& ec) const override;
std::optional<directory_view> opendir(inode_view entry) const override; std::optional<directory_view> opendir(inode_view entry) const override;
std::optional<std::pair<inode_view, std::string>> std::optional<std::pair<inode_view, std::string>>
readdir(directory_view dir, size_t offset) const override; readdir(directory_view dir, size_t offset) const override;
@ -1097,15 +1098,18 @@ file_stat filesystem_<LoggerPolicy>::getattr(inode_view entry) const {
} }
template <typename LoggerPolicy> template <typename LoggerPolicy>
int filesystem_<LoggerPolicy>::access(inode_view entry, int mode, uid_t uid, int filesystem_<LoggerPolicy>::access(inode_view entry, int mode,
gid_t gid) const { file_stat::uid_type uid,
file_stat::gid_type gid) const {
PERFMON_CLS_SCOPED_SECTION(access) PERFMON_CLS_SCOPED_SECTION(access)
return meta_.access(entry, mode, uid, gid); return meta_.access(entry, mode, uid, gid);
} }
template <typename LoggerPolicy> template <typename LoggerPolicy>
void filesystem_<LoggerPolicy>::access(inode_view entry, int mode, uid_t uid, void filesystem_<LoggerPolicy>::access(inode_view entry, int mode,
gid_t gid, std::error_code& ec) const { file_stat::uid_type uid,
file_stat::gid_type gid,
std::error_code& ec) const {
PERFMON_CLS_SCOPED_SECTION(access_ec) PERFMON_CLS_SCOPED_SECTION(access_ec)
call_int_error([&] { return meta_.access(entry, mode, uid, gid); }, ec); call_int_error([&] { return meta_.access(entry, mode, uid, gid); }, ec);
} }

View File

@ -494,7 +494,8 @@ class metadata_ final : public metadata_v2::impl {
return 2 + dir.entry_count(); // adds '.' and '..', which we fake in ;-) return 2 + dir.entry_count(); // adds '.' and '..', which we fake in ;-)
} }
int access(inode_view iv, int mode, uid_t uid, gid_t gid) const override; int access(inode_view iv, int mode, file_stat::uid_type uid,
file_stat::gid_type gid) const override;
int open(inode_view iv) const override; int open(inode_view iv) const override;
@ -1614,8 +1615,9 @@ metadata_<LoggerPolicy>::readdir(directory_view dir, size_t offset) const {
} }
template <typename LoggerPolicy> template <typename LoggerPolicy>
int metadata_<LoggerPolicy>::access(inode_view iv, int mode, uid_t uid, int metadata_<LoggerPolicy>::access(inode_view iv, int mode,
gid_t gid) const { file_stat::uid_type uid,
file_stat::gid_type gid) const {
LOG_DEBUG << fmt::format("access([{}, {:o}, {}, {}], {:o}, {}, {})", LOG_DEBUG << fmt::format("access([{}, {:o}, {}, {}], {:o}, {}, {})",
iv.inode_num(), iv.mode(), iv.getuid(), iv.getgid(), iv.inode_num(), iv.mode(), iv.getuid(), iv.getgid(),
mode, uid, gid); mode, uid, gid);

View File

@ -456,7 +456,8 @@ int op_getattr(char const* path, native_stat* st, struct fuse_file_info*) {
template <typename LogProxy, typename Find> template <typename LogProxy, typename Find>
int op_access_common(LogProxy& log_, dwarfs_userdata& userdata, int mode, int op_access_common(LogProxy& log_, dwarfs_userdata& userdata, int mode,
uid_t uid, gid_t gid, Find const& find) { file_stat::uid_type uid, file_stat::gid_type gid,
Find const& find) {
return checked_call(log_, [&] { return checked_call(log_, [&] {
if (auto entry = find()) { if (auto entry = find()) {
return userdata.fs.access(*entry, mode, uid, gid); return userdata.fs.access(*entry, mode, uid, gid);