Lines Matching defs:v9ses

101 	struct v9fs_session_info *v9ses = root->d_sb->s_fs_info;
103 if (v9ses->debug)
104 seq_printf(m, ",debug=%x", v9ses->debug);
105 if (!uid_eq(v9ses->dfltuid, V9FS_DEFUID))
107 from_kuid_munged(&init_user_ns, v9ses->dfltuid));
108 if (!gid_eq(v9ses->dfltgid, V9FS_DEFGID))
110 from_kgid_munged(&init_user_ns, v9ses->dfltgid));
111 if (v9ses->afid != ~0)
112 seq_printf(m, ",afid=%u", v9ses->afid);
113 if (strcmp(v9ses->uname, V9FS_DEFUSER) != 0)
114 seq_printf(m, ",uname=%s", v9ses->uname);
115 if (strcmp(v9ses->aname, V9FS_DEFANAME) != 0)
116 seq_printf(m, ",aname=%s", v9ses->aname);
117 if (v9ses->nodev)
119 if (v9ses->cache)
120 seq_printf(m, ",cache=%x", v9ses->cache);
122 if (v9ses->cachetag && (v9ses->cache & CACHE_FSCACHE))
123 seq_printf(m, ",cachetag=%s", v9ses->cachetag);
126 switch (v9ses->flags & V9FS_ACCESS_MASK) {
138 from_kuid_munged(&init_user_ns, v9ses->uid));
142 if (v9ses->flags & V9FS_IGNORE_QV)
144 if (v9ses->flags & V9FS_DIRECT_IO)
146 if (v9ses->flags & V9FS_POSIX_ACL)
149 if (v9ses->flags & V9FS_NO_XATTR)
152 return p9_show_client_options(m, v9ses->clnt);
157 * @v9ses: existing v9fs session information
163 static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
173 v9ses->afid = ~0;
174 v9ses->debug = 0;
175 v9ses->cache = CACHE_NONE;
177 v9ses->cachetag = NULL;
179 v9ses->session_lock_timeout = P9_LOCK_TIMEOUT;
206 v9ses->debug = option;
221 v9ses->dfltuid = make_kuid(current_user_ns(), option);
222 if (!uid_valid(v9ses->dfltuid)) {
236 v9ses->dfltgid = make_kgid(current_user_ns(), option);
237 if (!gid_valid(v9ses->dfltgid)) {
250 v9ses->afid = option;
254 kfree(v9ses->uname);
255 v9ses->uname = match_strdup(&args[0]);
256 if (!v9ses->uname) {
262 kfree(v9ses->aname);
263 v9ses->aname = match_strdup(&args[0]);
264 if (!v9ses->aname) {
270 v9ses->nodev = 1;
273 v9ses->flags |= V9FS_NO_XATTR;
276 v9ses->flags |= V9FS_DIRECT_IO;
279 v9ses->flags |= V9FS_IGNORE_QV;
283 kfree(v9ses->cachetag);
284 v9ses->cachetag = match_strdup(&args[0]);
285 if (!v9ses->cachetag) {
303 v9ses->cache = r;
317 v9ses->flags &= ~V9FS_ACCESS_MASK;
319 v9ses->flags |= V9FS_ACCESS_USER;
321 v9ses->flags |= V9FS_ACCESS_ANY;
323 v9ses->flags |= V9FS_ACCESS_CLIENT;
327 v9ses->flags |= V9FS_ACCESS_SINGLE;
336 v9ses->uid = make_kuid(current_user_ns(), uid);
337 if (!uid_valid(v9ses->uid)) {
348 v9ses->flags |= V9FS_POSIX_ACL;
369 v9ses->session_lock_timeout = (long)option * HZ;
385 * @v9ses: session information structure
391 struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
397 v9ses->uname = kstrdup(V9FS_DEFUSER, GFP_KERNEL);
398 if (!v9ses->uname)
401 v9ses->aname = kstrdup(V9FS_DEFANAME, GFP_KERNEL);
402 if (!v9ses->aname)
404 init_rwsem(&v9ses->rename_sem);
406 v9ses->uid = INVALID_UID;
407 v9ses->dfltuid = V9FS_DEFUID;
408 v9ses->dfltgid = V9FS_DEFGID;
410 v9ses->clnt = p9_client_create(dev_name, data);
411 if (IS_ERR(v9ses->clnt)) {
412 rc = PTR_ERR(v9ses->clnt);
417 v9ses->flags = V9FS_ACCESS_USER;
419 if (p9_is_proto_dotl(v9ses->clnt)) {
420 v9ses->flags = V9FS_ACCESS_CLIENT;
421 v9ses->flags |= V9FS_PROTO_2000L;
422 } else if (p9_is_proto_dotu(v9ses->clnt)) {
423 v9ses->flags |= V9FS_PROTO_2000U;
426 rc = v9fs_parse_options(v9ses, data);
430 v9ses->maxdata = v9ses->clnt->msize - P9_IOHDRSZ;
432 if (!v9fs_proto_dotl(v9ses) &&
433 ((v9ses->flags & V9FS_ACCESS_MASK) == V9FS_ACCESS_CLIENT)) {
438 v9ses->flags &= ~V9FS_ACCESS_MASK;
439 v9ses->flags |= V9FS_ACCESS_USER;
443 if (!(v9fs_proto_dotu(v9ses) || v9fs_proto_dotl(v9ses)) &&
444 ((v9ses->flags&V9FS_ACCESS_MASK) == V9FS_ACCESS_USER)) {
446 v9ses->flags &= ~V9FS_ACCESS_MASK;
447 v9ses->flags |= V9FS_ACCESS_ANY;
448 v9ses->uid = INVALID_UID;
450 if (!v9fs_proto_dotl(v9ses) ||
451 !((v9ses->flags & V9FS_ACCESS_MASK) == V9FS_ACCESS_CLIENT)) {
456 v9ses->flags &= ~V9FS_ACL_MASK;
459 fid = p9_client_attach(v9ses->clnt, NULL, v9ses->uname, INVALID_UID,
460 v9ses->aname);
467 if ((v9ses->flags & V9FS_ACCESS_MASK) == V9FS_ACCESS_SINGLE)
468 fid->uid = v9ses->uid;
474 if (v9ses->cache & CACHE_FSCACHE) {
475 rc = v9fs_cache_session_get_cookie(v9ses, dev_name);
481 list_add(&v9ses->slist, &v9fs_sessionlist);
488 kfree(v9ses->cachetag);
490 p9_client_destroy(v9ses->clnt);
492 kfree(v9ses->uname);
493 kfree(v9ses->aname);
499 * @v9ses: session information structure
503 void v9fs_session_close(struct v9fs_session_info *v9ses)
505 if (v9ses->clnt) {
506 p9_client_destroy(v9ses->clnt);
507 v9ses->clnt = NULL;
511 fscache_relinquish_volume(v9fs_session_cache(v9ses), NULL, false);
512 kfree(v9ses->cachetag);
514 kfree(v9ses->uname);
515 kfree(v9ses->aname);
518 list_del(&v9ses->slist);
524 * @v9ses: session to terminate
529 void v9fs_session_cancel(struct v9fs_session_info *v9ses)
531 p9_debug(P9_DEBUG_ERROR, "cancel session %p\n", v9ses);
532 p9_client_disconnect(v9ses->clnt);
537 * @v9ses: session to terminate
542 void v9fs_session_begin_cancel(struct v9fs_session_info *v9ses)
544 p9_debug(P9_DEBUG_ERROR, "begin cancel session %p\n", v9ses);
545 p9_client_begin_disconnect(v9ses->clnt);
559 struct v9fs_session_info *v9ses;
562 list_for_each_entry(v9ses, &v9fs_sessionlist, slist) {
563 if (v9ses->cachetag) {
564 n = snprintf(buf, limit, "%s\n", v9ses->cachetag);