On Thu, 30 Jan 2025 at 11:16, Luis Henriques <luis@xxxxxxxxxx> wrote: > > Userspace filesystems can push data for a specific inode without it being > explicitly requested. This can be accomplished by using NOTIFY_STORE. > However, this may race against another process performing different > operations on the same inode. > > If, for example, there is a process reading from it, it may happen that it > will block waiting for data to be available (locking the folio), while the > FUSE server will also block trying to lock the same folio to update it with > the inode data. > > The easiest solution, as suggested by Miklos, is to allow the userspace > filesystem to skip locked folios. Not sure. The easiest solution is to make the server perform the two operations independently. I.e. never trigger a notification from a request. This is true of other notifications, e.g. doing FUSE_NOTIFY_DELETE during e.g. FUSE_RMDIR will deadlock on i_mutex. Or am I misunderstanding the problem? Thanks, Miklos