On Thu, Apr 02, 2020 at 10:53:27AM +0200, Christoph Hellwig wrote: > On Wed, Apr 01, 2020 at 12:25:11PM +0200, Jan Kara wrote: > > > - Applications must call statx to discover the current S_DAX state. > > > > > > - There exists an advisory file inode flag FS_XFLAG_DAX that can be > > > changed on files that have no blocks allocated to them. Changing > > > this flag does not necessarily change the S_DAX state immediately > > > but programs can query the S_DAX state via statx. > > > > I generally like the proposal but I think the fact that toggling > > FS_XFLAG_DAX will not have immediate effect on S_DAX will cause quite some > > confusion and ultimately bug reports. I'm thinking whether we could somehow > > improve this... For example an ioctl that would try to make set inode flags > > effective by evicting the inode (and returning EBUSY if the eviction is > > impossible for some reason)? > > I'd just return an error for that case, don't play silly games like > evicting the inode. I think I agree with Christoph here. But I want to clarify. I was heading in a direction of failing the ioctl completely. But we could have the flag change with an appropriate error which could let the user know the change has been delayed. But I don't immediately see what error code is appropriate for such an indication. Candidates I can envision: EAGAIN ERESTART EUSERS EINPROGRESS None are perfect but I'm leaning toward EINPROGRESS. Ira