Loading include/client/gkfs_libc.hpp +3 −0 Original line number Diff line number Diff line Loading @@ -253,6 +253,9 @@ int chown(const char* path, uid_t owner, gid_t group) throw(); int fchown(int fd, uid_t owner, gid_t group) throw(); int fchownat(int dfd, const char* path, uid_t owner, gid_t group, int flags) throw(); //------------------------- Process and Descriptor Management //------------------// Loading src/client/gkfs_libc.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -724,6 +724,9 @@ DLSYM_WRAPPER(int, fchown, (int fd, uid_t owner, gid_t group), (fd, owner, group), "fchown") DLSYM_WRAPPER(int, lchown, (const char* path, uid_t owner, gid_t group), (path, owner, group), "lchown") DLSYM_WRAPPER(int, fchownat, (int dfd, const char* path, uid_t owner, gid_t group, int flags), (dfd, path, owner, group, flags), "fchownat") // Process and Descriptor Management DLSYM_WRAPPER(int, dup, (int fd), (fd), "dup") Loading tests/integration/harness/gkfs.io/syscall_coverage.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -832,7 +832,7 @@ test_traversal_uncovered(const std::string& base_dir) { rmdir(subdir_path.c_str()); } // Test Metadata/Permissions (chmod, chown, fchown, utimes, futimes) // Test Metadata/Permissions (chmod, chown, fchown, fchownat, utimes, futimes) void test_metadata_perms_uncovered(const std::string& base_dir) { std::string filepath = make_path(base_dir, "test_metadata_uncovered.txt"); Loading Loading @@ -895,6 +895,18 @@ test_metadata_perms_uncovered(const std::string& base_dir) { ; } // Test fchownat errno = 0; if(fchownat(AT_FDCWD, filepath.c_str(), getuid(), getgid(), 0) != 0) { if(errno == ENOTSUP || errno == EPERM || errno == ENOENT) { ; } else { perror("fchownat failed unexpectedly"); } } else { ; } // Test futimes errno = 0; if(futimes(fd, times) != 0) { Loading Loading @@ -968,6 +980,7 @@ test_misc_file_ops_uncovered(const std::string& base_dir) { } else { flock(fd, LOCK_UN); // Release } close(fd); // Close GekkoFS FD before testing fallbacks Loading Loading
include/client/gkfs_libc.hpp +3 −0 Original line number Diff line number Diff line Loading @@ -253,6 +253,9 @@ int chown(const char* path, uid_t owner, gid_t group) throw(); int fchown(int fd, uid_t owner, gid_t group) throw(); int fchownat(int dfd, const char* path, uid_t owner, gid_t group, int flags) throw(); //------------------------- Process and Descriptor Management //------------------// Loading
src/client/gkfs_libc.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -724,6 +724,9 @@ DLSYM_WRAPPER(int, fchown, (int fd, uid_t owner, gid_t group), (fd, owner, group), "fchown") DLSYM_WRAPPER(int, lchown, (const char* path, uid_t owner, gid_t group), (path, owner, group), "lchown") DLSYM_WRAPPER(int, fchownat, (int dfd, const char* path, uid_t owner, gid_t group, int flags), (dfd, path, owner, group, flags), "fchownat") // Process and Descriptor Management DLSYM_WRAPPER(int, dup, (int fd), (fd), "dup") Loading
tests/integration/harness/gkfs.io/syscall_coverage.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -832,7 +832,7 @@ test_traversal_uncovered(const std::string& base_dir) { rmdir(subdir_path.c_str()); } // Test Metadata/Permissions (chmod, chown, fchown, utimes, futimes) // Test Metadata/Permissions (chmod, chown, fchown, fchownat, utimes, futimes) void test_metadata_perms_uncovered(const std::string& base_dir) { std::string filepath = make_path(base_dir, "test_metadata_uncovered.txt"); Loading Loading @@ -895,6 +895,18 @@ test_metadata_perms_uncovered(const std::string& base_dir) { ; } // Test fchownat errno = 0; if(fchownat(AT_FDCWD, filepath.c_str(), getuid(), getgid(), 0) != 0) { if(errno == ENOTSUP || errno == EPERM || errno == ENOENT) { ; } else { perror("fchownat failed unexpectedly"); } } else { ; } // Test futimes errno = 0; if(futimes(fd, times) != 0) { Loading Loading @@ -968,6 +980,7 @@ test_misc_file_ops_uncovered(const std::string& base_dir) { } else { flock(fd, LOCK_UN); // Release } close(fd); // Close GekkoFS FD before testing fallbacks Loading