opnsense-src/sys/fs
Rick Macklem 3e5ba2e187 Fix LORs between vn_start_write() and vn_lock() in the pNFS server.
When coding the pNFS server, I added several vn_start_write() calls done
while the vnode was locked, not realizing I had introduced LORs and
possible deadlock when an exported file system on the MDS is suspended.
This patch fixes this by removing the added vn_start_write() calls and
modifying the code so that the extant vn_start_write() call before the
NFS RPC/operation is done when needed by the pNFS server.
Flags are changed so that LayoutCommit and LayoutReturn now get a
vn_start_write() done for them.
When the pNFS server is enabled, the code now also changes the flags for
Getattr, so that the vn_start_write() is done for Getattr, since it may
need to do a vn_set_extattr(). The nfs_writerpc flag array was made global
to the NFS server and renamed nfsrv_writerpc, which is consistent naming
for globals in the NFS server.
Thanks go to kib@ for reporting that doing vn_start_write() while the vnode is
locked results in a LOR.
This patch only affects the behaviour of the pNFS server.
2018-08-17 21:12:16 +00:00
..
autofs Add SPDX tags to autofs(5). 2018-01-24 16:40:26 +00:00
cd9660 cd9660 pointer sign issues and missing __packed attribute 2018-08-15 06:42:31 +00:00
cuse Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
deadfs sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
devfs Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
ext2fs Split the dir_index and dir_nlink features. 2018-08-08 12:08:46 +00:00
fdescfs Eliminate the overhead of gratuitous repeated reinitialization of cap_rights 2018-05-09 18:47:24 +00:00
fifofs Rework pathconf handling for FIFOs. 2017-12-19 22:39:05 +00:00
fuse FUSE: Document global sysctl knobs 2018-08-15 17:41:19 +00:00
msdosfs msdosfs: fixes for Undefined Behavior. 2018-08-08 15:08:22 +00:00
nandfs Put jail(2) under COMPAT_FREEBSD11. It has been the "old" way of creating 2018-08-16 18:40:16 +00:00
nfs Fix LORs between vn_start_write() and vn_lock() in the pNFS server. 2018-08-17 21:12:16 +00:00
nfsclient Silence newer gcc warnings. 2018-08-02 20:10:59 +00:00
nfsserver Fix LORs between vn_start_write() and vn_lock() in the pNFS server. 2018-08-17 21:12:16 +00:00
nullfs Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
procfs Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
pseudofs Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
smbfs Use long for the last argument to VOP_PATHCONF rather than a register_t. 2018-01-17 22:36:58 +00:00
tmpfs Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
udf Rework pathconf handling for FIFOs. 2017-12-19 22:39:05 +00:00
unionfs sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00