mirror of
https://github.com/versity/scoutfs.git
synced 2026-02-08 19:50:08 +00:00
c9c428589d771c9de2df7830433488b382ac1eae
In el9.6, the kernel VFS no longer goes through xattr handlers to retreive ACLs, but instead goes through the inode ops .get_acl, or, alternatively, .get_inode_acl. When I initially implemented the compatibility, I opted to implement .get_acl as the interface was simpler. Unfortunately, using .get_acl has the side effect that permission checking may rcu the acl as we're traversing a chain of directories, causing a cold cache traversal of nested directories to "lose" acl entries, as the traversal of directories requires permission checks on each of the steps, and that clashes with the getacl(1) lookup. The added test case exposes this issue. We can opt to implement our own sentinel, as some fs drivers have done. The alternative is to follow the path that all the other fs drivers have done, which is to implement .get_inode_acl, which is already guarded by a sentinel by the VFS, and can be explicitly told to not be called in rcu. To complete this, we're changing KC_GET_ACL_DENTRY, which is no longer used to KC_SET_ACL_DENTRY which was previously tacked on for the set_acl vfs parameter change from inode to dentry. Signed-off-by: Auke Kok <auke.kok@versity.com>
Introduction
scoutfs is a clustered in-kernel Linux filesystem designed to support large archival systems. It features additional interfaces and metadata so that archive agents can perform their maintenance workflows without walking all the files in the namespace. Its cluster support lets deployments add nodes to satisfy archival tier bandwidth targets.
The design goal is to reach file populations in the trillions, with the archival bandwidth to match, while remaining operational and responsive.
Highlights of the design and implementation include:
- Fully consistent POSIX semantics between nodes
- Atomic transactions to maintain consistent persistent structures
- Integrated archival metadata replaces syncing to external databases
- Dynamic seperation of resources lets nodes write in parallel
- 64bit throughout; no limits on file or directory sizes or counts
- Open GPLv2 implementation
Community Mailing List
Please join us on the open scoutfs-devel@scoutfs.org mailing list hosted on Google Groups
Description
Languages
C
87%
Shell
9.3%
Roff
2.5%
TeX
0.8%
Makefile
0.4%