On Nov 8, 2013, at 4:44 PM, Mindaugas Rasiukevicius <rm...@netbsd.org> wrote:
> Module Name: src > Committed By: rmind > Date: Fri Nov 8 15:44:23 UTC 2013 > > Modified Files: > src/sys/fs/tmpfs: tmpfs.h tmpfs_rename.c tmpfs_subr.c tmpfs_vfsops.c > tmpfs_vnops.c > > Log Message: > tmpfs: replace the broken tmpfs_dircookie() logic which uses the node > address truncated to 31 bits (required for 32-bit readdir compatibility, > e.g. linux32). Instead, assign 2^31 range using the following logic: > - The first half of the 2^31 is assigned incrementally (the fast path). > - When exceeded, use the second half of 2^31, but manage with vmem(9). > > It will require 2 billion files per-directory to trigger vmem(9) usage. > Also, while here, add some fixes for tmpfs_unmount(). > > Should fix PR/47739, PR/47480, PR/46088 and PR/41068. > Thanks to wiz@ for stress testing. The tests fs/vfs/t_union/tmpfs_basic and fs/vfs/t_union/tmpfs_whiteout start failing after this commit. -- J. Hannken-Illjes - hann...@eis.cs.tu-bs.de - TU Braunschweig (Germany)