client.c (9fec6060d9e48ed7db0dac0e16d0f0f0e615b7f6) client.c (72029fe85d8d060b3f966f2dbc36b3c75b5a6532)
1/*
2 * net/9p/clnt.c
3 *
4 * 9P Client
5 *
6 * Copyright (C) 2008 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2007 by Latchesar Ionkov <lucho@ionkov.net>
8 *

--- 61 unchanged lines hidden (view full) ---

70static int parse_opts(char *opts, struct p9_client *clnt)
71{
72 char *options;
73 char *p;
74 substring_t args[MAX_OPT_ARGS];
75 int option;
76 int ret = 0;
77
1/*
2 * net/9p/clnt.c
3 *
4 * 9P Client
5 *
6 * Copyright (C) 2008 by Eric Van Hensbergen <ericvh@gmail.com>
7 * Copyright (C) 2007 by Latchesar Ionkov <lucho@ionkov.net>
8 *

--- 61 unchanged lines hidden (view full) ---

70static int parse_opts(char *opts, struct p9_client *clnt)
71{
72 char *options;
73 char *p;
74 substring_t args[MAX_OPT_ARGS];
75 int option;
76 int ret = 0;
77
78 clnt->trans_mod = v9fs_default_trans();
79 clnt->dotu = 1;
80 clnt->msize = 8192;
81
82 if (!opts)
83 return 0;
84
85 options = kstrdup(opts, GFP_KERNEL);
86 if (!options) {

--- 16 unchanged lines hidden (view full) ---

103 continue;
104 }
105 }
106 switch (token) {
107 case Opt_msize:
108 clnt->msize = option;
109 break;
110 case Opt_trans:
78 clnt->dotu = 1;
79 clnt->msize = 8192;
80
81 if (!opts)
82 return 0;
83
84 options = kstrdup(opts, GFP_KERNEL);
85 if (!options) {

--- 16 unchanged lines hidden (view full) ---

102 continue;
103 }
104 }
105 switch (token) {
106 case Opt_msize:
107 clnt->msize = option;
108 break;
109 case Opt_trans:
111 clnt->trans_mod = v9fs_match_trans(&args[0]);
110 clnt->trans_mod = v9fs_get_trans_by_name(&args[0]);
112 break;
113 case Opt_legacy:
114 clnt->dotu = 0;
115 break;
116 default:
117 continue;
118 }
119 }
111 break;
112 case Opt_legacy:
113 clnt->dotu = 0;
114 break;
115 default:
116 continue;
117 }
118 }
119
120 if (!clnt->trans_mod)
121 clnt->trans_mod = v9fs_get_default_trans();
122
120 kfree(options);
121 return ret;
122}
123
124
125/**
126 * p9_client_rpc - sends 9P request and waits until a response is available.
127 * The function can be interrupted.

--- 17 unchanged lines hidden (view full) ---

145
146 err = 0;
147 tc = NULL;
148 rc = NULL;
149 clnt = kmalloc(sizeof(struct p9_client), GFP_KERNEL);
150 if (!clnt)
151 return ERR_PTR(-ENOMEM);
152
123 kfree(options);
124 return ret;
125}
126
127
128/**
129 * p9_client_rpc - sends 9P request and waits until a response is available.
130 * The function can be interrupted.

--- 17 unchanged lines hidden (view full) ---

148
149 err = 0;
150 tc = NULL;
151 rc = NULL;
152 clnt = kmalloc(sizeof(struct p9_client), GFP_KERNEL);
153 if (!clnt)
154 return ERR_PTR(-ENOMEM);
155
156 clnt->trans_mod = NULL;
153 clnt->trans = NULL;
154 spin_lock_init(&clnt->lock);
155 INIT_LIST_HEAD(&clnt->fidlist);
156 clnt->fidpool = p9_idpool_create();
157 if (IS_ERR(clnt->fidpool)) {
158 err = PTR_ERR(clnt->fidpool);
159 clnt->fidpool = NULL;
160 goto error;

--- 69 unchanged lines hidden (view full) ---

230 P9_DPRINTK(P9_DEBUG_9P, "clnt %p\n", clnt);
231
232 if (clnt->trans) {
233 clnt->trans->close(clnt->trans);
234 kfree(clnt->trans);
235 clnt->trans = NULL;
236 }
237
157 clnt->trans = NULL;
158 spin_lock_init(&clnt->lock);
159 INIT_LIST_HEAD(&clnt->fidlist);
160 clnt->fidpool = p9_idpool_create();
161 if (IS_ERR(clnt->fidpool)) {
162 err = PTR_ERR(clnt->fidpool);
163 clnt->fidpool = NULL;
164 goto error;

--- 69 unchanged lines hidden (view full) ---

234 P9_DPRINTK(P9_DEBUG_9P, "clnt %p\n", clnt);
235
236 if (clnt->trans) {
237 clnt->trans->close(clnt->trans);
238 kfree(clnt->trans);
239 clnt->trans = NULL;
240 }
241
242 v9fs_put_trans(clnt->trans_mod);
243
238 list_for_each_entry_safe(fid, fidptr, &clnt->fidlist, flist)
239 p9_fid_destroy(fid);
240
241 if (clnt->fidpool)
242 p9_idpool_destroy(clnt->fidpool);
243
244 kfree(clnt);
245}

--- 834 unchanged lines hidden ---
244 list_for_each_entry_safe(fid, fidptr, &clnt->fidlist, flist)
245 p9_fid_destroy(fid);
246
247 if (clnt->fidpool)
248 p9_idpool_destroy(clnt->fidpool);
249
250 kfree(clnt);
251}

--- 834 unchanged lines hidden ---