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

lklfuse: migrate to libfuse3 #542

Merged
merged 4 commits into from
May 31, 2024
Merged

lklfuse: migrate to libfuse3 #542

merged 4 commits into from
May 31, 2024

Conversation

ddiss
Copy link

@ddiss ddiss commented May 30, 2024

I'm in the process of adding lklfuse support to xfstests. Some tests exercise lseek(SEEK_HOLE/SEEK_DATA) behaviour, which isn't supported prior to libfuse3. This upgrade puts us in a better position to support these seek types as well as copy_file_range().

A couple of other minor changes are also included.

The following changes since commit ab9b0d476edfd77c7bf994f271acf00f1c08aee1:

  Merge pull request #537 from thehajime/merge-6.6 (2024-05-16 10:10:47 +0900)

are available in the Git repository at:

  https://github.com/ddiss/linux libfuse3

for you to fetch changes up to 2bc326ccd22c812730937507d33626f0c1128ee5:

  lklfuse: update to libfuse3 (2024-05-30 17:25:57 +1000)

----------------------------------------------------------------
David Disseldorp (4):
      lklfuse: show default for --mb
      lklfuse: fix utimens mtime
      lklfuse: set lkl clock time to the host walltime
      lklfuse: update to libfuse3

 tools/lkl/Makefile.autoconf |   2 +-
 tools/lkl/Targets           |   2 +-
 tools/lkl/lklfuse.c         | 203 ++++++++++++++++++++++--------------
 3 files changed, 126 insertions(+), 81 deletions(-)

ddiss added 4 commits May 30, 2024 17:25
Fix a typo while there.

Signed-off-by: David Disseldorp <[email protected]>
The utimens array layout is { atime, mtime } but in copying the values
from timespec to lkl_timespec, fuse source array offset 0 (atime) is
used for both lkl_timespec atime and mtime values.

Signed-off-by: David Disseldorp <[email protected]>
This ensures that file times aren't stuck around Epoch.

Signed-off-by: David Disseldorp <[email protected]>
Update to the new libfuse3 API, which has a number of attractive
features for lkl:
- an lseek() hook with SEEK_DATA / SEEK_HOLE
- copy_file_range()
- RENAME_NOREPLACE and RENAME_EXCHANGE.

Aside from passing through the rename flags, the remaining features
still need to be added to lklfuse. This commit attempts to be a direct
switch over to the new API.

The last upstream release of libfuse2 was in 2019 (2.9.9), so it makes
sense to upgrade regardless of the new functionality.

Signed-off-by: David Disseldorp <[email protected]>
@ddiss
Copy link
Author

ddiss commented May 30, 2024

force pushed update (v2):

  • fix some checkpatch reported errors

@tavip
Copy link
Member

tavip commented May 30, 2024

LGTM, thanks David!

The test error looks like an infra / test flakiness issue, I've restarted it just to make sure. checkpatch fails for one of the patches in the series which was fixed later, no need to fix it.

@tavip tavip merged commit 77cc0f1 into lkl:master May 31, 2024
12 of 13 checks passed
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.

2 participants