Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_vnodedumper.c
| Show First 20 Lines • Show All 127 Lines • ▼ Show 20 Lines | #if MINIDUMP_PAGE_TRACKING == 1 | ||||
| /* Lock the entire file range and vnode. */ | /* Lock the entire file range and vnode. */ | ||||
| rl_cookie = vn_rangelock_wlock(vp, 0, OFF_MAX); | rl_cookie = vn_rangelock_wlock(vp, 0, OFF_MAX); | ||||
| vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); | vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); | ||||
| EVENTHANDLER_INVOKE(livedumper_start, &error); | EVENTHANDLER_INVOKE(livedumper_start, &error); | ||||
| if (error != 0) | if (error != 0) | ||||
| goto out; | goto out; | ||||
| curthread->td_pflags2 |= TDP2_SAN_QUIET; | |||||
| dump_savectx(); | dump_savectx(); | ||||
| error = minidumpsys(livedi, true); | error = minidumpsys(livedi, true); | ||||
| curthread->td_pflags2 &= ~TDP2_SAN_QUIET; | |||||
| EVENTHANDLER_INVOKE(livedumper_finish); | EVENTHANDLER_INVOKE(livedumper_finish); | ||||
| out: | out: | ||||
| VOP_UNLOCK(vp); | VOP_UNLOCK(vp); | ||||
| vn_rangelock_unlock(vp, rl_cookie); | vn_rangelock_unlock(vp, rl_cookie); | ||||
| sx_xunlock(&livedump_sx); | sx_xunlock(&livedump_sx); | ||||
| dumper_destroy(livedi); | dumper_destroy(livedi); | ||||
| return (error); | return (error); | ||||
| ▲ Show 20 Lines • Show All 81 Lines • Show Last 20 Lines | |||||