Add FUSE3 support and TANDBERG LTO-6 HH drive#590
Conversation
FUSE3 support (for AlmaLinux9/RHEL9 with FUSE 3.x): - Update FUSE_USE_VERSION from 26 to 30 - Fix filler() calls to use 5 arguments (FUSE3 API) - Remove deprecated fuse_operations members: fgetattr, ftruncate, flag_nullpath_ok - Update fuse_parse_cmdline() to use struct fuse_cmdline_opts (FUSE3 API) - Add fuse_lowlevel.h include in main.c - Remove deprecated FUSE2 options: hard_remove, sync_read, big_writes, use_ino TANDBERG LTO-6 HH support: - Add VENDOR_TANDBERG to vendor enum in tape_drivers.h - Add TANDBERG_VENDOR_ID definition in hp_tape.h - Add TANDBERG LTO-6 HH drive entry in hp_tape.c - Add TANDBERG vendor handling in vendor_compat.c (get_vendor_id, get_supported_devs, init_error_table, init_timeout) - Use LogPage 0x31 for TANDBERG capacity reading in sg_tape.c Tested with: TANDBERG LTO-6 HH (firmware 3319, serial HUJ430176D) AlmaLinux 9.7 (kernel 5.14.0-611.54.6.el9_7.x86_64) FUSE 3.10.2-9.el9
There was a problem hiding this comment.
Hello @mhorimoto ! Thank you for opening this PR! Seems good so far, I will continue reviewing, but I think we may need to also add from LTO-5 to LTO-9, within the same format you used.
https://ltoworld.com/ I used this page as a source to see which LTO drives exists for Tandberg, renamed to Overland. One constraint is that we do not have Tandberg/Overland hardware to test them.
What do you think?
There was a problem hiding this comment.
Hello @Piloalucard san.
Thank you for your review!
I will research the Tandberg/Overland LTO-5 to LTO-9 drive entries using ltoworld.com and add them in the same format.
However, I only have a Tandberg LTO-6 drive, so I can only verify the LTO-6 entry with actual hardware. The other entries (LTO-5, LTO-7 to LTO-9) will be based on research only, without real device testing.
I'll update this PR once the investigation is complete.
| ret = fuse_opt_add_arg(&args, "-ohard_remove"); | ||
| /* FUSE3: removed deprecated option: ret = fuse_opt_add_arg(&args, "-ohard_remove"); */ |
There was a problem hiding this comment.
Hard remove also does not seem deprecated but discouraged.
TBD if this is an issue
There was a problem hiding this comment.
Thank you for investigating this. I will wait for your findings on whether
hard_remove causes any issues. Please let me know and I will update accordingly.
- Disable async read via FUSE_CAP_ASYNC_READ in ltfs_fuse_mount() instead of removed -osync_read option (FUSE3) - Comment out -ouse_ino option: verified removed in FUSE3 (causes mount failure: 'fuse: unknown option(s): -o use_ino') - Tested on AlmaLinux 9.7 with FUSE3, LTO-6 Tandberg drive Mount, file read, and data integrity (cmp) all confirmed OK
|
Tested on AlmaLinux 9.7 with FUSE3 (LTO-6 Tandberg drive, firmware 3319). Results:
Regarding Regarding |
|
@madjesc I have addressed your review comments in the latest commit (6b75ff0). Summary of changes:
Could you please re-review? Thank you. |
Summary of changes
Description
FUSE3 support (AlmaLinux9 / RHEL9)
The original code was written for FUSE2 and fails to build on systems
with FUSE3 (AlmaLinux 9.7, RHEL 9.x).
TANDBERG LTO-6 HH drive support
TANDBERG LTO-6 HH drives were not in the supported device table,
causing a segfault in _raw_open().
Type of change
Test environment
Checklist: