vhost_user_fs: Implement support for FUSE_LSEEK

Implement missing support for FUSE_LSEEK, which basically implies
calling to libc::lseek on the file handle. As this operation alters
the file offset, we take a write lock on the File's RwLock.

Signed-off-by: Sergio Lopez <slp@redhat.com>
This commit is contained in:
Sergio Lopez
2020-03-18 13:26:18 +01:00
committed by Rob Bradford
parent 5aa9abca5e
commit c821e96e2a
3 changed files with 58 additions and 10 deletions

View File

@@ -1084,6 +1084,18 @@ pub trait FileSystem {
Err(io::Error::from_raw_os_error(libc::ENOSYS))
}
/// Reposition read/write file offset.
fn lseek(
&self,
ctx: Context,
inode: Self::Inode,
handle: Self::Handle,
offset: u64,
whence: u32,
) -> io::Result<u64> {
Err(io::Error::from_raw_os_error(libc::ENOSYS))
}
/// TODO: support this
fn getlk(&self) -> io::Result<()> {
Err(io::Error::from_raw_os_error(libc::ENOSYS))
@@ -1118,9 +1130,4 @@ pub trait FileSystem {
fn notify_reply(&self) -> io::Result<()> {
Err(io::Error::from_raw_os_error(libc::ENOSYS))
}
/// TODO: support this
fn lseek(&self) -> io::Result<()> {
Err(io::Error::from_raw_os_error(libc::ENOSYS))
}
}