diff options
author | Matthew Wilcox <willy@infradead.org> | 2018-07-11 14:02:24 -0700 |
---|---|---|
committer | Dominique Martinet <dominique.martinet@cea.fr> | 2018-08-29 13:39:57 +0900 |
commit | 996d5b4db4b191f2676cf8775565cab8a5e2753b (patch) | |
tree | 586a82cc32aebc85a181bc1cc837062f3d34660f /net/9p/mod.c | |
parent | 62e3941776fea8678bb8120607039410b1b61a65 (diff) |
9p: Use a slab for allocating requests
Replace the custom batch allocation with a slab. Use an IDR to store
pointers to the active requests instead of an array. We don't try to
handle P9_NOTAG specially; the IDR will happily shrink all the way back
once the TVERSION call has completed.
Link: http://lkml.kernel.org/r/20180711210225.19730-6-willy@infradead.org
Signed-off-by: Matthew Wilcox <willy@infradead.org>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Cc: Ron Minnich <rminnich@sandia.gov>
Cc: Latchesar Ionkov <lucho@ionkov.net>
Signed-off-by: Dominique Martinet <dominique.martinet@cea.fr>
Diffstat (limited to 'net/9p/mod.c')
-rw-r--r-- | net/9p/mod.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/9p/mod.c b/net/9p/mod.c index 253ba824a325..0da56d6af73b 100644 --- a/net/9p/mod.c +++ b/net/9p/mod.c @@ -171,11 +171,17 @@ void v9fs_put_trans(struct p9_trans_module *m) */ static int __init init_p9(void) { + int ret; + + ret = p9_client_init(); + if (ret) + return ret; + p9_error_init(); pr_info("Installing 9P2000 support\n"); p9_trans_fd_init(); - return 0; + return ret; } /** @@ -188,6 +194,7 @@ static void __exit exit_p9(void) pr_info("Unloading 9P2000 support\n"); p9_trans_fd_exit(); + p9_client_exit(); } module_init(init_p9) |