YAMAMOTO Takashi <y...@mwd.biglobe.ne.jp> wrote: > alternatively, using puffs_msg_setcall, i think you can make GETATTR > reliably know if there's a pending SETATTR or not. > if there's a pending SETATTR, GETATTR can ignore a part of the reply > from the file server and returns the kernel's idea of the file attributes > instead.
That seems the best way, but you need to do it everywhere uvm_vnp_setsize() is called, that is: puffs_vnop_getattr dosetattr puffs_vnop_write It seems useless in puffs_getvnode since no race can occur there, though. We would have a PNODE_IN_RESIZE flag for struct pnode's pn_stat, set and cleared in dosetattr(), and use vp->v_size on uvm_vnp_setsize() calls when set? Or just avoid uvm_vnp_setsize() calls? -- Emmanuel Dreyfus http://hcpnet.free.fr/pubz m...@netbsd.org