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); }
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);
}
void access(inode_view entry, int mode, uid_t uid, gid_t gid,
std::error_code& ec) const {
void access(inode_view entry, int mode, file_stat::uid_type uid,
file_stat::gid_type gid, std::error_code& ec) const {
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 file_stat getattr(inode_view entry, std::error_code& ec) const = 0;
virtual file_stat getattr(inode_view entry) const = 0;
virtual int
access(inode_view entry, int mode, uid_t uid, gid_t gid) const = 0;
virtual void access(inode_view entry, int mode, uid_t uid, gid_t gid,
std::error_code& ec) const = 0;
virtual int access(inode_view entry, int mode, file_stat::uid_type uid,
file_stat::gid_type gid) const = 0;
virtual void access(inode_view entry, int mode, file_stat::uid_type uid,
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<std::pair<inode_view, std::string>>
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); }
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);
}
@ -198,7 +199,8 @@ class metadata_v2 {
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;

View File

@ -442,9 +442,10 @@ class filesystem_ final : public filesystem_v2::impl {
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) const override;
int access(inode_view entry, int mode, uid_t uid, gid_t gid) const override;
void access(inode_view entry, int mode, uid_t uid, gid_t gid,
std::error_code& ec) const override;
int access(inode_view entry, int mode, file_stat::uid_type uid,
file_stat::gid_type gid) 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<std::pair<inode_view, std::string>>
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>
int filesystem_<LoggerPolicy>::access(inode_view entry, int mode, uid_t uid,
gid_t gid) const {
int filesystem_<LoggerPolicy>::access(inode_view entry, int mode,
file_stat::uid_type uid,
file_stat::gid_type gid) const {
PERFMON_CLS_SCOPED_SECTION(access)
return meta_.access(entry, mode, uid, gid);
}
template <typename LoggerPolicy>
void filesystem_<LoggerPolicy>::access(inode_view entry, int mode, uid_t uid,
gid_t gid, std::error_code& ec) const {
void filesystem_<LoggerPolicy>::access(inode_view entry, int mode,
file_stat::uid_type uid,
file_stat::gid_type gid,
std::error_code& ec) const {
PERFMON_CLS_SCOPED_SECTION(access_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 ;-)
}
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;
@ -1614,8 +1615,9 @@ metadata_<LoggerPolicy>::readdir(directory_view dir, size_t offset) const {
}
template <typename LoggerPolicy>
int metadata_<LoggerPolicy>::access(inode_view iv, int mode, uid_t uid,
gid_t gid) const {
int metadata_<LoggerPolicy>::access(inode_view iv, int mode,
file_stat::uid_type uid,
file_stat::gid_type gid) const {
LOG_DEBUG << fmt::format("access([{}, {:o}, {}, {}], {:o}, {}, {})",
iv.inode_num(), iv.mode(), iv.getuid(), iv.getgid(),
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>
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_, [&] {
if (auto entry = find()) {
return userdata.fs.access(*entry, mode, uid, gid);