summaryrefslogtreecommitdiff
path: root/src/fuse
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2021-12-30 12:23:57 -0600
committerAlejandro Soto <alejandro@34project.org>2021-12-30 12:23:57 -0600
commita6b20d4090014d00ee0dbeedb70beafe516f7e0b (patch)
treea58d73007b68cde7a4408375011647d60017f76f /src/fuse
parent86cfef51cf89d43bbeefa9a06ba1f80ef8e8ab15 (diff)
Add Reply::flags() for Open
Diffstat (limited to 'src/fuse')
-rw-r--r--src/fuse/io.rs1
-rw-r--r--src/fuse/ops.rs8
2 files changed, 8 insertions, 1 deletions
diff --git a/src/fuse/io.rs b/src/fuse/io.rs
index db33ab3..d7f1100 100644
--- a/src/fuse/io.rs
+++ b/src/fuse/io.rs
@@ -15,6 +15,7 @@ use super::{Done, Operation, Reply, Request};
#[doc(no_inline)]
pub use nix::{
dir::Type as EntryType,
+ fcntl::OFlag as OpenFlags,
sys::stat::Mode,
unistd::{AccessFlags, Gid, Pid, Uid},
};
diff --git a/src/fuse/ops.rs b/src/fuse/ops.rs
index 250fe47..ec6fdcf 100644
--- a/src/fuse/ops.rs
+++ b/src/fuse/ops.rs
@@ -12,7 +12,7 @@ use crate::{
};
use super::{
- io::{AccessFlags, Entry, EntryType, FsInfo, Interruptible, Known},
+ io::{AccessFlags, Entry, EntryType, FsInfo, Interruptible, Known, OpenFlags},
private_trait::Sealed,
Done, Operation, Reply, Request,
};
@@ -180,6 +180,12 @@ op! {
type ReplyTail = proto::OpenOutFlags;
}
+ impl Request {
+ pub fn flags(&self) -> OpenFlags {
+ OpenFlags::from_bits_truncate(self.body.flags.try_into().unwrap_or_default())
+ }
+ }
+
impl Reply {
pub fn force_direct_io(&mut self) {
self.tail |= proto::OpenOutFlags::DIRECT_IO;