• David Howells's avatar
    afs: Wait for outstanding async calls before closing rxrpc socket · 2f02f7ae
    David Howells authored
    The afs filesystem needs to wait for any outstanding asynchronous calls
    (such as FS.GiveUpCallBacks cleaning up the callbacks lodged with a server)
    to complete before closing the AF_RXRPC socket when unloading the module.
    
    This may occur if the module is removed too quickly after unmounting all
    filesystems.  This will produce an error report that looks like:
    
    	AFS: Assertion failed
    	1 == 0 is false
    	0x1 == 0x0 is false
    	------------[ cut here ]------------
    	kernel BUG at ../fs/afs/rxrpc.c:135!
    	...
    	RIP: 0010:[<ffffffffa004111c>] afs_close_socket+0xec/0x107 [kafs]
    	...
    	Call Trace:
    	 [<ffffffffa004a160>] afs_exit+0x1f/0x57 [kafs]
    	 [<ffffffff810c30a0>] SyS_delete_module+0xec/0x17d
    	 [<ffffffff81610417>] entry_SYSCALL_64_fastpath+0x12/0x6b
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2f02f7ae
rxrpc.c 20.3 KB