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