Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libmount statmount support #3092

Draft
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

karelzak
Copy link
Collaborator

No description provided.

Restructure #ifdefs in mount-api-utils.h to allow for the addition of
other components, such as fallbacks for statmount().

Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Since the Linux kernel version 6.8, there are two types of IDs
available: the "old" ID used in /proc/self/mountinfo, and a new 64-bit
unique ID that is never recycled. This new ID is provided by the
statx(STATX_MNT_ID_UNIQUE) and statmount() syscalls.

Note that this patch only adds the API for retrieving these unique
IDs, but the backing code has not been implemented yet.

Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
This change allows propagation flags to be retained from another
source, such as statmount().

Signed-off-by: Karel Zak <kzak@redhat.com>
Optimize statx() call to reduce cost as much as possible.

Signed-off-by: Karel Zak <kzak@redhat.com>
It's exported by kernel in statmount->sb_flags, but not defined in any
uapi kernel header :-(

Signed-off-by: Karel Zak <kzak@redhat.com>
* add mnt_fs_fetch_statmount()
* add mnt_fs_enable_statmount()
* add mnt_fs_set_uniq_id()
* add uniq IDs and propagation to mnt_fs_print_debug()

Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
* add docs
* sort mnt_fs_* functions in docs

Signed-off-by: Karel Zak <kzak@redhat.com>
* fetch only data necessary for mnt_fs_get_...() functions

* add mask to mnt_fs_enable_statmount() to define default mask

* add mask to mnt_fs_fetch_statmount() to define what caller needs
  (zero means everything).

Signed-off-by: Karel Zak <kzak@redhat.com>
The file fs.c is large enough.

Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
* Check for relevant structs and macros for statmount and listmount
* Add fallback for syscalls if the libc does not define relevant SYS_*
  macros

Signed-off-by: Karel Zak <kzak@redhat.com>
The new syscalls are already being used in many places within the
library, so it would be better to keep the syscalls header file within
the private main library header file.

Signed-off-by: Karel Zak <kzak@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant