tech-kern archive

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

PUFFS FAF and vnode locking



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?

-- 
Emmanuel Dreyfus
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index