On Mon, Feb 15, 2016 at 05:32:54PM -0500, Martin Brandenburg wrote: > Something that used a slot, such as reader, would call > service_operation while holding a bufmap. Then the client-core would > crash, and the kernel would get run_down waiting on the slots to be > given up. But the slots are not given up until someone wakes all the > processes waiting in service_operation up, which happens after all the > slots are given up. Then client-core hangs until someone sends a > deadly signal to all the processes waiting in service_operation or > presumably the timeout expires. > > This splits finalize and run_down so that orangefs_devreq_release can > mark the slot map as killed, then purge waiting ops, then wait for all > the slots to be released. Meanwhile, processes which were waiting will > get into orangefs_bufmap_get which will see that the slot map is > shutting down and wait for the client-core to come back. D'oh. Yes, that was exactly the point of separating mark_dead and run_down - the latter should've been done after purging all requests. Fixes folded, branch force-pushed. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html