mirror of
https://github.com/opnsense/src.git
synced 2026-04-12 12:56:47 -04:00
to the fs, but before a vnode on the fs is locked, unmount may free fs structures, causing access to destroyed data and freed memory. Introduce a vfs_busymp() function that looks up and busies found fs while mountlist_mtx is held. Use it in nfsrv_fhtovp() and in the implementation of the handle syscalls. Two other uses of the vfs_getvfs() in the vfs_subr.c, namely in sysctl_vfs_ctl and vfs_getnewfsid seems to be ok. In particular, sysctl_vfs_ctl is protected by Giant by being a non-sleeping sysctl handler, that prevents Giant-locked unmount code to interfere with it. Noted by: tegge Reviewed by: dfr Tested by: pho MFC after: 1 month |
||
|---|---|---|
| .. | ||
| nfs.h | ||
| nfs_fha.c | ||
| nfs_fha.h | ||
| nfs_serv.c | ||
| nfs_srvcache.c | ||
| nfs_srvkrpc.c | ||
| nfs_srvsock.c | ||
| nfs_srvsubs.c | ||
| nfs_syscalls.c | ||
| nfsm_subs.h | ||
| nfsrvcache.h | ||
| nfsrvstats.h | ||