| From: |
| Ryosuke Yasuoka <ryasuoka-AT-redhat.com> |
| To: |
| arnd-AT-arndb.de, gregkh-AT-linuxfoundation.org, ojeda-AT-kernel.org, alex.gaynor-AT-gmail.com, boqun.feng-AT-gmail.com, gary-AT-garyguo.net, bjorn3_gh-AT-protonmail.com, lossin-AT-kernel.org, a.hindborg-AT-kernel.org, aliceryhl-AT-google.com, tmgross-AT-umich.edu, dakr-AT-kernel.org, viro-AT-zeniv.linux.org.uk, brauner-AT-kernel.org, jack-AT-suse.cz |
| Subject: |
| [PATCH rust-next v2 0/3] rust: miscdevice: add llseek support |
| Date: |
| Wed, 15 Oct 2025 13:02:40 +0900 |
| Message-ID: |
| <20251015040246.151141-1-ryasuoka@redhat.com> |
| Cc: |
| Ryosuke Yasuoka <ryasuoka-AT-redhat.com>, rust-for-linux-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-fsdevel-AT-vger.kernel.org |
| Archive-link: |
| Article |
Hi all,
This patch series add support for the llseek file operation to misc
devices written in Rust.
The first patch introduces pos()/pos_mut() methods to LocalFile and
File. These helpers allow to refer to the file's position, which is
required for implementing lseek in misc_device.
The second patch adds the llseek hook to the MiscDevice trait, enabling
Rust drivers to implement the seeking logic.
The last one updates the rust_misc_device sample to demonstrate the
usage of the new llseek hook, including a C test program that verifies
the functionality.
history of this patch:
v2:
- Introduce pos() and pos_mut() methods to get file positions,
and use them in sample programs.
- Add read, write and lseek in the userspace sample program.
- Remove unsafe block from the sample program.
- In this v2 patch, remove SEEK_END related codes from
a sample program because it needs inode->i_size which has not
implemented yet. The purpose of this patch is to introduce
lseek(). Since implementing an 'inode wrap' requires more
extensive discussion than adding llseek hook(), I just
exclude it from this patch series. I believe that whether
SEEK_END is supported or not has no impact on adding lseek()
to MiscDevice.
v1:
https://lore.kernel.org/rust-for-linux/20250818135846.133...
Ryosuke Yasuoka (3):
rust: fs: add pos/pos_mut methods for LocalFile struct
rust: miscdevice: add llseek support
rust: samples: miscdevice: add lseek samples
rust/kernel/fs/file.rs | 61 ++++++++++++++++++++++++++++
rust/kernel/miscdevice.rs | 36 +++++++++++++++++
samples/rust/rust_misc_device.rs | 68 ++++++++++++++++++++++++++++++++
3 files changed, 165 insertions(+)
base-commit: 98906f9d850e4882004749eccb8920649dc98456
--
2.51.0