This series addresses two issues we currently have: 1) the version operation only does a partial cleanup of a previously active session. It can leave unfinished PDUs and stale fids behind. This violates the 9p specification.
2) if a guest mounts a 9p share and is then resetted with system_reset, it remains unmigratable because the migration blocker isn't cleared. The current implementation of the official 9p client in the linux kernel cannot hit 1) because it only uses the version operation at mount time. Anyway, this could speed-up reset since we wouldn't simply wait for pending I/O to complete as we do know. And it is very easy to hit 2). Please review. Stefan, Both issues have always been around, but it is the first time we can fix them since 2.8 introduces vdc->reset. Do you think this is ok for 2.8 or would you prefer to postpone this to 2.9 ? Cheers. -- Greg --- Greg Kurz (5): 9pfs: add missing coroutine_fn annotations 9pfs: cancel active PDUs in virtfs_reset() 9pfs: always free fids in virtfs_reset() 9pfs: drop useless loop in v9fs_reset() 9pfs: clear migration blocker when resetting the device hw/9pfs/9p.c | 59 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 20 deletions(-)