Thread (33 messages) 33 messages, 7 authors, 2017-10-19

Re: [PATCH v9 2/6] fs, mm: pass fd to ->mmap_validate()

From: Dan Williams <hidden>
Date: 2017-10-12 03:44:01
Also in: linux-fsdevel, linux-mm, linux-xfs, nvdimm

On Wed, Oct 11, 2017 at 7:17 PM, Dan Williams [off-list ref] wrote:
On Wed, Oct 11, 2017 at 6:28 PM, Dan Williams [off-list ref] wrote:
quoted
On Wed, Oct 11, 2017 at 6:21 PM, Al Viro [off-list ref] wrote:
quoted
On Wed, Oct 11, 2017 at 05:47:18PM -0700, Dan Williams wrote:
quoted
The MAP_DIRECT mechanism for mmap intends to use a file lease to prevent
block map changes while the file is mapped. It requires the fd to setup
an fasync_struct for signalling lease break events to the lease holder.
*UGH*

That looks like one hell of a bad API.  You are not even guaranteed that
descriptor will remain be still open by the time you pass it down to your
helper, nevermind the moment when event actually happens...
What am I missing, fcntl(F_SETLEASE) seems to follow a similar pattern?
Ugh, so I think the difference with F_SETLEASE is that the lease ends
when the fd is closed. In the mmap case the lease follows the lifetime
of the vma. I'll rethink this interface...
I'm not seeing a lot of good options outside of documenting that if
you close the fd that is registered with MAP_DIRECT you may still get
SIGIO notifications with si_fd set to the stale fd.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help