freebsd-nq/sys/compat/linux
Konstantin Belousov 140dedb81c The r241025 fixed the case when a binary, executed from nullfs mount,
was still possible to open for write from the lower filesystem.  There
is a symmetric situation where the binary could already has file
descriptors opened for write, but it can be executed from the nullfs
overlay.

Handle the issue by passing one v_writecount reference to the lower
vnode if nullfs vnode has non-zero v_writecount.  Note that only one
write reference can be donated, since nullfs only keeps one use
reference on the lower vnode.  Always use the lower vnode v_writecount
for the checks.

Introduce the VOP_GET_WRITECOUNT to read v_writecount, which is
currently always bypassed to the lower vnode, and VOP_ADD_WRITECOUNT
to manipulate the v_writecount value, which manages a single bypass
reference to the lower vnode.  Caling the VOPs instead of directly
accessing v_writecount provide the fix described in the previous
paragraph.

Tested by:	pho
MFC after:	3 weeks
2012-11-02 13:56:36 +00:00
..
check_error.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
check_internal_locks.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_dtrace.h - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_emul.c - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_emul.h - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_file.c Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
linux_file.h Make the Linux *at() calls a bit more complete. 2011-11-19 07:19:37 +00:00
linux_fork.c - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_futex.c - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_futex.h
linux_getcwd.c
linux_ioctl.c Convert files to UTF-8 2012-01-15 13:23:18 +00:00
linux_ioctl.h This is v4l2 support for the linuxulator. This allows to access FreeBSD 2011-05-04 09:05:39 +00:00
linux_ipc.c Convert files to UTF-8 2012-01-15 13:23:18 +00:00
linux_ipc.h
linux_mib.c - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_mib.h
linux_misc.c The r241025 fixed the case when a binary, executed from nullfs mount, 2012-11-02 13:56:36 +00:00
linux_misc.h linux compat: improve and fix sendmsg/recvmsg compatibility 2011-03-26 11:05:53 +00:00
linux_signal.c Convert files to UTF-8 2012-01-15 13:23:18 +00:00
linux_signal.h
linux_socket.c Convert files to UTF-8 2012-01-15 13:23:18 +00:00
linux_socket.h linux compat: improve and fix sendmsg/recvmsg compatibility 2011-03-26 11:05:53 +00:00
linux_stats.c Remove direct access to si_name. 2012-02-10 12:35:57 +00:00
linux_sysctl.c - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_sysproto.h
linux_time.c - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_uid16.c - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_util.c - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_util.h - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_videodev2_compat.h Commit the missing linux_videdev2_compat.h (lost somewhere between 2011-05-04 13:09:20 +00:00
linux_videodev2.h Add explanation about the use-permission and FreeBSDify it. 2011-05-04 08:41:55 +00:00
linux_videodev_compat.h
linux_videodev.h Fix typo in comment, improve comment. 2011-05-04 08:42:31 +00:00
stats_timing.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
trace_futexes.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00