hi, > The vnode locking requirement currently allows to call VOP_GETATTR() > on an unlocked vnode. This is orthogonal to all other operations that > read data or metadata and want at least a shared lock. It also asks > for trouble as the attributes may change while the operation is in > progress. > > With the attached diff the locking protocol requests at least a shared > lock and all calls to VOP_GETATTR() outside of file systems respect it. > > The calls from file systems need review (NFS server is suspicious at least). > > I will commit this diff around Oct 14 if noone objects.
postgresql assumes instant lseek(SEEK_END) to get the size of their heap files. http://rhaas.blogspot.com/2011/11/linux-lseek-scalability.html as fsync etc keeps the vnode lock during i/o, it might cause severe performance regression. YAMAMOTO Takashi > > -- > Juergen Hannken-Illjes - hann...@eis.cs.tu-bs.de - TU Braunschweig (Germany)