freebsd-skq/sys
Konstantin Belousov 8239a7a878 The tmpfs_alloc_vp() is used to instantiate vnode for the tmpfs node,
in particular, from the tmpfs_lookup VOP method.  If LK_NOWAIT is not
specified in the lkflags, the lookup is supposed to return an alive
vnode whenever the underlying node is valid.

Currently, the tmpfs_alloc_vp() returns ENOENT if the vnode attached
to node exists and is being reclaimed.  This causes spurious ENOENT
errors from lookup on tmpfs and corresponding random 'No such file'
failures from syscalls working with tmpfs files.

Fix this by waiting for the doomed vnode to be detached from the tmpfs
node if sleepable allocation is requested.

Note that filesystems which use vfs_hash.c, correctly handle the case
due to vfs_hash_get() looping when vget() returns ENOENT for sleepable
requests.

Reported and tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2013-08-05 18:53:59 +00:00
..
amd64 - Introduce a specific function, pmap_remove_kernel_pde, for removing 2013-08-05 00:28:03 +00:00
arm Tweak the imx debug console code so that it works with multiple SoCs. 2013-08-03 13:31:10 +00:00
boot Fix the build of the testmain target. This target compiles a Forth 2013-08-01 18:06:58 +00:00
bsm Implement chflagsat(2) system call, similar to fchmodat(2), but operates on 2013-03-21 22:59:01 +00:00
cam MFprojects/camlock r249006: 2013-08-05 12:15:53 +00:00
cddl Revert r253939: 2013-08-05 08:55:35 +00:00
compat Regenerate. 2013-07-21 19:44:53 +00:00
conf Redirect svnversion stderr to /dev/null if we cannot determine 2013-08-05 10:26:42 +00:00
contrib Realtek's RTL8712 firmware blob needed by the upcoming rsu(4) driver. 2013-07-29 06:53:42 +00:00
crypto Fix const propagation issues to make GCC happy. 2013-07-11 16:27:11 +00:00
ddb
dev Correct a fat-finger in the last delta. 2013-08-05 16:16:50 +00:00
fs The tmpfs_alloc_vp() is used to instantiate vnode for the tmpfs node, 2013-08-05 18:53:59 +00:00
gdb rename scheduler->swapper and SI_SUB_RUN_SCHEDULER->SI_SUB_LAST 2013-07-24 09:45:31 +00:00
geom Remove inclusion of <sys/diskmbr.h>. We have no business knowing 2013-08-04 21:00:22 +00:00
gnu/fs/reiserfs Garbage collect XFS bits which are now already completely disconnected 2013-03-02 15:33:54 +00:00
i386 - Introduce a specific function, pmap_remove_kernel_pde, for removing 2013-08-05 00:28:03 +00:00
ia64 Back out r253779 & r253786. 2013-07-31 17:21:18 +00:00
isa
kern Revert r253939: 2013-08-05 08:55:35 +00:00
kgssapi Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
libkern Fix watchdog pretimeout. 2013-07-27 20:47:01 +00:00
mips Back out r253779 & r253786. 2013-07-31 17:21:18 +00:00
modules Add missing depend. 2013-08-03 08:21:35 +00:00
net sin6 should be assigned before the loop. 2013-07-28 20:02:41 +00:00
net80211 Fix compilation when debugging is disabled. 2013-07-28 17:35:19 +00:00
netatalk Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
netgraph Add constant for PPP-Max-PayLoad tag. 2013-07-23 10:25:34 +00:00
netinet Micro-optimization suggested in 2013-08-01 12:05:23 +00:00
netinet6 Fix a panic in tmpaddrtimer. 2013-08-05 00:36:12 +00:00
netipsec Remove the large part of struct ipsecstat. Only few fields of this 2013-07-23 14:14:24 +00:00
netipx
netnatm
netpfil Fix a possible NULL-pointer dereference on the pfsync(4) reconfiguration. 2013-07-29 13:17:18 +00:00
netsmb Remove a reference to LK_DRAIN now that lockmgr(9) is gone from this 2013-06-28 20:21:13 +00:00
nfs Changes to allow using BOOTP_NFSROOT and mounting an nfs root filesystem 2013-07-31 19:14:00 +00:00
nfsclient A problem with the old NFS client where large writes to large files 2013-07-04 00:54:23 +00:00
nfsserver - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
nlm
ofed Add a missing prototype. 2013-07-29 20:48:10 +00:00
opencrypto When porting XTS-related code from OpenBSD I forgot to update copyright (only 2013-02-20 22:59:53 +00:00
pc98 Back out r253779 & r253786. 2013-07-31 17:21:18 +00:00
pci - Corrrect mispellings of word useful 2013-04-17 11:45:15 +00:00
powerpc Remove duplicate definition of SPR MMCR0. 2013-08-03 18:05:12 +00:00
rpc Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
security audit_proc_coredump: check return value of audit_new 2013-07-09 09:03:01 +00:00
sparc64 Remove unused member. 2013-08-04 21:17:05 +00:00
sys Fix typo. 2013-08-03 13:38:56 +00:00
teken
tools Further refine the handling of stop signals in the NFS client. The 2013-02-21 19:02:50 +00:00
ufs Update to comments describing block allocation policy. 2013-07-14 18:44:33 +00:00
vm Revert r253939: 2013-08-05 08:55:35 +00:00
x86 x86: detect mwait capabilities and extensions, when present 2013-07-28 17:54:42 +00:00
xdr Use m_get() and m_getcl() instead of compat macros. 2013-03-15 10:21:18 +00:00
xen Adjust i386 Xen PV support for updated Xen interface files. 2013-06-17 01:43:07 +00:00
Makefile Remove netncp cscope entry missed in r248097 2013-03-12 14:21:52 +00:00