freebsd-skq/sys/ufs/ffs
Kirk McKusick 69166928c7 This is an additional and hopefully final fix for bug report 230962.
This bug was introduced with the change to use softdep_bp_to_mp()
in January 2018 changes -r327723 and -r327821. The softdep_bp_to_mp()
function failed to include VSOCK as one of the valid cases.

Although local-domain sockets do not allocate blocks in the filesystem,
they will allocate blocks if they use extended attributes (such as
ACLs). Thus, softdep_bp_to_mp() needs to return a non-NULL mount
pointer when presented with a socket vnode so that the soft updates
write complete will properly process the soft updates structures
associated with the extended attribute blocks. It was the failure
to process these soft updates structures, thus leaving them hanging
off the buffer, which lead to the "panic: softdep_deallocate_dependencies:
dangling deps" when trying to clean up the buffer after it was written.

PR:           230962
Reported by:  2t8mr7kx9f@protonmail.com
Reviewed by:  kib
Tested by:    Peter Holm
MFC after:    1 week
Sponsored by: Netflix
2019-03-20 23:11:05 +00:00
..
ffs_alloc.c After a crash, a file that extends into indirect blocks may end up 2019-02-25 21:58:19 +00:00
ffs_balloc.c Replace the TRIM consolodation framework originally added in -r337396 2018-08-18 22:21:59 +00:00
ffs_extern.h Continuing efforts to provide hardening of FFS. This change adds a 2018-12-11 22:14:37 +00:00
ffs_inode.c Give more complete information in INVARIANTS panic messages at end of 2019-03-11 23:53:56 +00:00
ffs_rawread.c Allocate pager bufs from UMA instead of 80-ish mutex protected linked list. 2019-01-15 01:02:16 +00:00
ffs_snapshot.c When loading an inode from disk, verify that its mode is valid. 2018-12-27 07:18:53 +00:00
ffs_softdep.c This is an additional and hopefully final fix for bug report 230962. 2019-03-20 23:11:05 +00:00
ffs_subr.c Ensure that the inode check-hash is not left zeroed out in the case where 2018-12-15 18:49:30 +00:00
ffs_suspend.c Avoid assertion in /dev/ufssuspend when the suspend ioctl is 2018-08-01 19:06:55 +00:00
ffs_tables.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ffs_vfsops.c Reorder ffs_verify_dinode_ckhash() so that it checks the inode check-hash 2018-12-15 18:35:46 +00:00
ffs_vnops.c FFS: allow sendfile(2) to work with block sizes greater than the page size 2019-02-26 04:56:10 +00:00
fs.h After a crash, a file that extends into indirect blocks may end up 2019-02-25 21:58:19 +00:00
softdep.h Replace the TRIM consolodation framework originally added in -r337396 2018-08-18 22:21:59 +00:00