tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: PUFFS FAF and vnode locking



hi,

> Hi
> 
> PUFFS uses Fire-And-Forget (FAF) operations for various situations. 
> These are request that are sent and a reply is not awaiten. It is
> used for instance with SETATTR for flushing atime/mtime updates.
> 
> That means the kernel starts an operation on a locked vnode and 
> unlocks the vnode without knowing if the operation completed. We
> therefore easily reach the situation where the filesystem gets 
> multiple concurent SETATTR, which are supposed to be serialized
> by vnode locking. Confusion can arise there, and I indeed experienced
> situation where glusterfs just ignores excedent SETATTR when they
> are concurent. This is a problem because it leaks a buffer and
> a continuation context in perfused.
> 
> I am not sure of how that should be handled? Add a PUFFS option to 
> suppress FAF for atime/mtime updates? Implement node locking in
> perfused? Ignore SETATTR atime/mtime with FAF? Any idea?

i consider the lack of operation barriers a bug in puffs protocol.

pgfs (src/share/examples/puffs/pgfs) has a workaround. (grep fileid_lock)
your filesystem can do something similar but i don't think it's ideal.

YAMAMOTO Takashi

> 
> -- 
> Emmanuel Dreyfus
> manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index