--- - branch: MAIN date: Tue Apr 15 09:50:45 UTC 2014 files: - new: '1.30' old: '1.29' path: src/sys/kern/vfs_trans.c pathrev: src/sys/kern/vfs_trans.c@1.30 type: modified id: 20140415T095045Z.9364b02b525656a4590640a68cf546c2e526c977 log: | Fix a deadlock where one thread exits, enters fstrans_lwp_dtor() and wants fstrans_lock. This thread holds the proc_lock. Another thread holds fstrans_lock and runs pserialize_perform(). As the first thread holds the proc_lock, timeouts are blocked and the second thread blocks forever in kpause(). Change fstrans_lwp_dtor() to invalidate, but not free its info structs. No need to take fstrans_lock. Change fstrans_get_lwp_info() to reuse invalidated info before trying to allocate a new one. module: src subject: 'CVS commit: src/sys/kern' unixtime: '1397555445' user: hannken