From: Miklos S. <mi...@sz...> - 2011-09-21 12:32:02
|
John Muir <jo...@jm...> writes: > When changes are made by a remote host, the local kernel is notified > with 'fuse_lowlevel_notify_inval_inode()'. This function allows you to > specify that parts of the cache are no longer valid. Subsequent reads > of the file result in read operations to your fuse file-system > process. > > I believe that you can also use 'fuse_lowlevel_notify_store()' to > store data written by a remote node. In the case of my file-system, > use of this function 'synchronously' would result in dead-lock with a > local process that tries to modify the file at the same time as a > remote process. I haven't tried this, but... The kernel itself uses locking on the pages to prevent concurrent writes to the same page. But that in itself shouldn't cause a deadlock. If your filesystem uses locking in ->write() and around fuse_lowlevel_notify_store() then yes, that would deadlock. But is that necessary? Am I missing something? Thanks, Miklos |