diff --git a/aya/src/maps/perf/perf_event_array.rs b/aya/src/maps/perf/perf_event_array.rs index 66659243..c825178a 100644 --- a/aya/src/maps/perf/perf_event_array.rs +++ b/aya/src/maps/perf/perf_event_array.rs @@ -64,7 +64,7 @@ impl> AsFd for PerfEventArrayBuffer { impl> AsRawFd for PerfEventArrayBuffer { fn as_raw_fd(&self) -> RawFd { - self.buf.as_fd().as_raw_fd() + self.as_fd().as_raw_fd() } } diff --git a/aya/src/maps/ring_buf.rs b/aya/src/maps/ring_buf.rs index de02cc05..79bf8f1c 100644 --- a/aya/src/maps/ring_buf.rs +++ b/aya/src/maps/ring_buf.rs @@ -9,7 +9,7 @@ use std::{ fmt::{self, Debug, Formatter}, mem, ops::Deref, - os::fd::{AsFd as _, AsRawFd, BorrowedFd, RawFd}, + os::fd::{AsFd, AsRawFd, BorrowedFd, RawFd}, sync::atomic::{AtomicU32, AtomicUsize, Ordering}, }; @@ -130,15 +130,20 @@ impl RingBuf { } } -/// Access to the RawFd can be used to construct an AsyncFd for use with epoll. -impl> AsRawFd for RingBuf { - fn as_raw_fd(&self) -> RawFd { +impl> AsFd for RingBuf { + fn as_fd(&self) -> BorrowedFd<'_> { let Self { map, consumer: _, producer: _, } = self; - map.borrow().fd().as_fd().as_raw_fd() + map.borrow().fd().as_fd() + } +} + +impl> AsRawFd for RingBuf { + fn as_raw_fd(&self) -> RawFd { + self.as_fd().as_raw_fd() } }