Lines Matching refs:ctx

312 static bool nfs_server_transport_udp_invalid(const struct nfs_fs_context *ctx)
317 static bool nfs_server_transport_udp_invalid(const struct nfs_fs_context *ctx)
319 if (ctx->version == 4)
329 struct nfs_fs_context *ctx)
331 switch (ctx->nfs_server.protocol) {
333 if (nfs_server_transport_udp_invalid(ctx))
340 ctx->nfs_server.protocol = XPRT_TRANSPORT_TCP;
343 if (ctx->xprtsec.policy != RPC_XPRTSEC_NONE)
344 switch (ctx->nfs_server.protocol) {
346 ctx->nfs_server.protocol = XPRT_TRANSPORT_TCP_TLS;
363 static void nfs_set_mount_transport_protocol(struct nfs_fs_context *ctx)
365 if (ctx->mount_server.protocol == XPRT_TRANSPORT_UDP ||
366 ctx->mount_server.protocol == XPRT_TRANSPORT_TCP)
368 switch (ctx->nfs_server.protocol) {
370 ctx->mount_server.protocol = XPRT_TRANSPORT_UDP;
374 ctx->mount_server.protocol = XPRT_TRANSPORT_TCP;
408 struct nfs_fs_context *ctx = nfs_fc2context(fc);
456 ret = nfs_auth_info_add(fc, &ctx->auth_info, pseudoflavor);
467 struct nfs_fs_context *ctx = nfs_fc2context(fc);
473 ctx->xprtsec.policy = RPC_XPRTSEC_NONE;
476 ctx->xprtsec.policy = RPC_XPRTSEC_TLS_ANON;
479 ctx->xprtsec.policy = RPC_XPRTSEC_TLS_X509;
490 struct nfs_fs_context *ctx = nfs_fc2context(fc);
492 ctx->flags &= ~NFS_MOUNT_VER3;
495 ctx->version = 2;
498 ctx->flags |= NFS_MOUNT_VER3;
499 ctx->version = 3;
506 ctx->version = 4;
509 ctx->version = 4;
510 ctx->minorversion = 0;
513 ctx->version = 4;
514 ctx->minorversion = 1;
517 ctx->version = 4;
518 ctx->minorversion = 2;
533 struct nfs_fs_context *ctx = nfs_fc2context(fc);
542 return (opt == -ENOPARAM && ctx->sloppy) ? 1 : opt;
545 ctx->has_sec_mnt_opts = 1;
559 ctx->flags |= NFS_MOUNT_SOFT;
560 ctx->flags &= ~NFS_MOUNT_SOFTERR;
563 ctx->flags |= NFS_MOUNT_SOFTERR | NFS_MOUNT_SOFTREVAL;
564 ctx->flags &= ~NFS_MOUNT_SOFT;
567 ctx->flags &= ~(NFS_MOUNT_SOFT |
573 ctx->flags &= ~NFS_MOUNT_SOFTREVAL;
575 ctx->flags |= NFS_MOUNT_SOFTREVAL;
579 ctx->flags &= ~NFS_MOUNT_POSIX;
581 ctx->flags |= NFS_MOUNT_POSIX;
585 ctx->flags |= NFS_MOUNT_NOCTO;
587 ctx->flags &= ~NFS_MOUNT_NOCTO;
591 ctx->flags &= ~NFS_MOUNT_TRUNK_DISCOVERY;
593 ctx->flags |= NFS_MOUNT_TRUNK_DISCOVERY;
597 ctx->flags |= NFS_MOUNT_NOAC;
599 ctx->flags &= ~NFS_MOUNT_NOAC;
603 ctx->flags |= NFS_MOUNT_NONLM;
604 ctx->flags |= (NFS_MOUNT_LOCAL_FLOCK | NFS_MOUNT_LOCAL_FCNTL);
606 ctx->flags &= ~NFS_MOUNT_NONLM;
607 ctx->flags &= ~(NFS_MOUNT_LOCAL_FLOCK | NFS_MOUNT_LOCAL_FCNTL);
611 ctx->flags &= ~NFS_MOUNT_TCP;
612 ctx->nfs_server.protocol = XPRT_TRANSPORT_UDP;
616 ctx->flags |= NFS_MOUNT_TCP; /* for side protocols */
620 ctx->nfs_server.protocol = ret;
624 ctx->flags |= NFS_MOUNT_NOACL;
626 ctx->flags &= ~NFS_MOUNT_NOACL;
630 ctx->flags |= NFS_MOUNT_NORDIRPLUS;
632 ctx->flags &= ~NFS_MOUNT_NORDIRPLUS;
636 ctx->flags |= NFS_MOUNT_UNSHARED;
638 ctx->flags &= ~NFS_MOUNT_UNSHARED;
642 ctx->flags |= NFS_MOUNT_NORESVPORT;
644 ctx->flags &= ~NFS_MOUNT_NORESVPORT;
648 ctx->options &= ~NFS_OPTION_FSCACHE;
650 ctx->options |= NFS_OPTION_FSCACHE;
651 kfree(ctx->fscache_uniq);
652 ctx->fscache_uniq = NULL;
656 ctx->options |= NFS_OPTION_FSCACHE;
657 kfree(ctx->fscache_uniq);
658 ctx->fscache_uniq = param->string;
663 ctx->options &= ~NFS_OPTION_MIGRATION;
665 ctx->options |= NFS_OPTION_MIGRATION;
674 ctx->nfs_server.port = result.uint_32;
677 ctx->rsize = result.uint_32;
680 ctx->wsize = result.uint_32;
683 ctx->bsize = result.uint_32;
688 ctx->timeo = result.uint_32;
693 ctx->retrans = result.uint_32;
696 ctx->acregmin = result.uint_32;
699 ctx->acregmax = result.uint_32;
702 ctx->acdirmin = result.uint_32;
705 ctx->acdirmax = result.uint_32;
708 ctx->acregmin = result.uint_32;
709 ctx->acregmax = result.uint_32;
710 ctx->acdirmin = result.uint_32;
711 ctx->acdirmax = result.uint_32;
714 ctx->namlen = result.uint_32;
719 ctx->mount_server.port = result.uint_32;
725 ctx->mount_server.version = result.uint_32;
730 ctx->minorversion = result.uint_32;
770 ctx->flags &= ~NFS_MOUNT_TCP;
771 ctx->nfs_server.protocol = XPRT_TRANSPORT_UDP;
777 ctx->flags |= NFS_MOUNT_TCP;
778 ctx->nfs_server.protocol = XPRT_TRANSPORT_TCP;
785 ctx->flags |= NFS_MOUNT_TCP;
789 ctx->nfs_server.protocol = ret;
795 ctx->protofamily = protofamily;
808 ctx->mount_server.protocol = XPRT_TRANSPORT_UDP;
814 ctx->mount_server.protocol = XPRT_TRANSPORT_TCP;
820 ctx->mountfamily = mountfamily;
826 &ctx->nfs_server.address,
827 sizeof(ctx->nfs_server._address));
830 ctx->nfs_server.addrlen = len;
834 kfree(ctx->client_address);
835 ctx->client_address = param->string;
840 kfree(ctx->mount_server.hostname);
841 ctx->mount_server.hostname = param->string;
847 &ctx->mount_server.address,
848 sizeof(ctx->mount_server._address));
851 ctx->mount_server.addrlen = len;
857 ctx->nfs_server.nconnect = result.uint_32;
863 ctx->nfs_server.max_connect = result.uint_32;
869 ctx->flags &= ~(NFS_MOUNT_LOOKUP_CACHE_NONEG|NFS_MOUNT_LOOKUP_CACHE_NONE);
872 ctx->flags &= ~NFS_MOUNT_LOOKUP_CACHE_NONE;
873 ctx->flags |= NFS_MOUNT_LOOKUP_CACHE_NONEG;
876 ctx->flags |= NFS_MOUNT_LOOKUP_CACHE_NONEG|NFS_MOUNT_LOOKUP_CACHE_NONE;
886 ctx->flags |= (NFS_MOUNT_LOCAL_FLOCK |
890 ctx->flags |= NFS_MOUNT_LOCAL_FLOCK;
893 ctx->flags |= NFS_MOUNT_LOCAL_FCNTL;
896 ctx->flags &= ~(NFS_MOUNT_LOCAL_FLOCK |
907 ctx->flags &=
911 ctx->flags |= NFS_MOUNT_WRITE_EAGER;
912 ctx->flags &= ~NFS_MOUNT_WRITE_WAIT;
915 ctx->flags |=
927 ctx->sloppy = true;
955 struct nfs_fs_context *ctx = nfs_fc2context(fc);
988 kfree(ctx->nfs_server.hostname);
991 ctx->nfs_server.hostname = kmemdup_nul(dev_name, len, GFP_KERNEL);
992 if (!ctx->nfs_server.hostname)
997 ctx->nfs_server.export_path = kmemdup_nul(end, len, GFP_KERNEL);
998 if (!ctx->nfs_server.export_path)
1001 trace_nfs_mount_path(ctx->nfs_server.export_path);
1041 struct nfs_fs_context *ctx = nfs_fc2context(fc);
1042 struct nfs_fh *mntfh = ctx->mntfh;
1043 struct sockaddr_storage *sap = &ctx->nfs_server._address;
1050 ctx->version = NFS_DEFAULT_VERSION;
1078 ctx->version = 3;
1081 ctx->version = 2;
1103 ctx->flags = data->flags & NFS_MOUNT_FLAGMASK;
1104 ctx->flags |= extra_flags;
1105 ctx->rsize = data->rsize;
1106 ctx->wsize = data->wsize;
1107 ctx->timeo = data->timeo;
1108 ctx->retrans = data->retrans;
1109 ctx->acregmin = data->acregmin;
1110 ctx->acregmax = data->acregmax;
1111 ctx->acdirmin = data->acdirmin;
1112 ctx->acdirmax = data->acdirmax;
1113 ctx->need_mount = false;
1116 ctx->nfs_server.addrlen = sizeof(data->addr);
1117 ctx->nfs_server.port = ntohs(data->addr.sin_port);
1123 ctx->nfs_server.protocol = XPRT_TRANSPORT_UDP;
1125 ctx->nfs_server.hostname = kstrdup(data->hostname, GFP_KERNEL);
1126 if (!ctx->nfs_server.hostname)
1129 ctx->namlen = data->namlen;
1130 ctx->bsize = data->bsize;
1133 ctx->selected_flavor = data->pseudoflavor;
1135 ctx->selected_flavor = RPC_AUTH_UNIX;
1138 ctx->flags &= ~(NFS_MOUNT_LOCAL_FLOCK|
1141 ctx->flags |= (NFS_MOUNT_LOCAL_FLOCK|
1171 ret = nfs_validate_transport_protocol(fc, ctx);
1175 ctx->skip_reconfig_option_check = true;
1183 ctx->skip_reconfig_option_check = true;
1273 struct nfs_fs_context *ctx = nfs_fc2context(fc);
1274 struct sockaddr_storage *sap = &ctx->nfs_server._address;
1285 ctx->version = 4;
1293 if (data->host_addrlen > sizeof(ctx->nfs_server.address))
1297 ctx->nfs_server.addrlen = data->host_addrlen;
1302 ctx->nfs_server.port = ntohs(((struct sockaddr_in *)sap)->sin_port);
1312 ctx->selected_flavor = pseudoflavor;
1314 ctx->selected_flavor = RPC_AUTH_UNIX;
1320 ctx->nfs_server.hostname = c;
1325 ctx->nfs_server.export_path = c;
1331 ctx->client_address = c;
1338 ctx->flags = data->flags & NFS4_MOUNT_FLAGMASK;
1339 ctx->rsize = data->rsize;
1340 ctx->wsize = data->wsize;
1341 ctx->timeo = data->timeo;
1342 ctx->retrans = data->retrans;
1343 ctx->acregmin = data->acregmin;
1344 ctx->acregmax = data->acregmax;
1345 ctx->acdirmin = data->acdirmin;
1346 ctx->acdirmax = data->acdirmax;
1347 ctx->nfs_server.protocol = data->proto;
1348 ret = nfs_validate_transport_protocol(fc, ctx);
1352 ctx->skip_reconfig_option_check = true;
1386 struct nfs_fs_context *ctx = nfs_fc2context(fc);
1388 struct sockaddr_storage *sap = &ctx->nfs_server._address;
1398 if (ctx->minorversion && ctx->version != 4)
1401 if (ctx->options & NFS_OPTION_MIGRATION &&
1402 (ctx->version != 4 || ctx->minorversion != 0))
1408 if (ctx->protofamily != AF_UNSPEC &&
1409 ctx->protofamily != ctx->nfs_server.address.sa_family)
1412 if (ctx->mountfamily != AF_UNSPEC) {
1413 if (ctx->mount_server.addrlen) {
1414 if (ctx->mountfamily != ctx->mount_server.address.sa_family)
1417 if (ctx->mountfamily != ctx->nfs_server.address.sa_family)
1425 ret = nfs_validate_transport_protocol(fc, ctx);
1429 if (ctx->version == 4) {
1431 if (ctx->nfs_server.protocol == XPRT_TRANSPORT_RDMA)
1437 ctx->flags &= ~(NFS_MOUNT_NONLM | NFS_MOUNT_NOACL |
1444 nfs_set_mount_transport_protocol(ctx);
1445 if (ctx->nfs_server.protocol == XPRT_TRANSPORT_RDMA)
1449 nfs_set_port(sap, &ctx->nfs_server.port, port);
1456 if (!ctx->nfs_mod) {
1457 nfs_mod = get_nfs_version(ctx->version);
1462 ctx->nfs_mod = nfs_mod;
1466 if (fc->fs_type != ctx->nfs_mod->nfs_fs) {
1468 __module_get(ctx->nfs_mod->nfs_fs->owner);
1469 fc->fs_type = ctx->nfs_mod->nfs_fs;
1486 ctx->version, ctx->minorversion);
1499 struct nfs_fs_context *ctx = nfs_fc2context(fc);
1504 if (!ctx->internal)
1505 return ctx->nfs_mod->rpc_ops->try_get_tree(fc);
1518 struct nfs_fs_context *src = nfs_fc2context(src_fc), *ctx;
1520 ctx = kmemdup(src, sizeof(struct nfs_fs_context), GFP_KERNEL);
1521 if (!ctx)
1524 ctx->mntfh = nfs_alloc_fhandle();
1525 if (!ctx->mntfh) {
1526 kfree(ctx);
1529 nfs_copy_fh(ctx->mntfh, src->mntfh);
1531 __module_get(ctx->nfs_mod->owner);
1532 ctx->client_address = NULL;
1533 ctx->mount_server.hostname = NULL;
1534 ctx->nfs_server.export_path = NULL;
1535 ctx->nfs_server.hostname = NULL;
1536 ctx->fscache_uniq = NULL;
1537 ctx->clone_data.fattr = NULL;
1538 fc->fs_private = ctx;
1544 struct nfs_fs_context *ctx = nfs_fc2context(fc);
1546 if (ctx) {
1547 if (ctx->server)
1548 nfs_free_server(ctx->server);
1549 if (ctx->nfs_mod)
1550 put_nfs_version(ctx->nfs_mod);
1551 kfree(ctx->client_address);
1552 kfree(ctx->mount_server.hostname);
1553 kfree(ctx->nfs_server.export_path);
1554 kfree(ctx->nfs_server.hostname);
1555 kfree(ctx->fscache_uniq);
1556 nfs_free_fhandle(ctx->mntfh);
1557 nfs_free_fattr(ctx->clone_data.fattr);
1558 kfree(ctx);
1578 struct nfs_fs_context *ctx;
1580 ctx = kzalloc(sizeof(struct nfs_fs_context), GFP_KERNEL);
1581 if (unlikely(!ctx))
1584 ctx->mntfh = nfs_alloc_fhandle();
1585 if (unlikely(!ctx->mntfh)) {
1586 kfree(ctx);
1590 ctx->protofamily = AF_UNSPEC;
1591 ctx->mountfamily = AF_UNSPEC;
1592 ctx->mount_server.port = NFS_UNSPEC_PORT;
1599 ctx->flags = nfss->flags;
1600 ctx->rsize = nfss->rsize;
1601 ctx->wsize = nfss->wsize;
1602 ctx->retrans = nfss->client->cl_timeout->to_retries;
1603 ctx->selected_flavor = nfss->client->cl_auth->au_flavor;
1604 ctx->acregmin = nfss->acregmin / HZ;
1605 ctx->acregmax = nfss->acregmax / HZ;
1606 ctx->acdirmin = nfss->acdirmin / HZ;
1607 ctx->acdirmax = nfss->acdirmax / HZ;
1608 ctx->timeo = 10U * nfss->client->cl_timeout->to_initval / HZ;
1609 ctx->nfs_server.port = nfss->port;
1610 ctx->nfs_server.addrlen = nfss->nfs_client->cl_addrlen;
1611 ctx->version = nfss->nfs_client->rpc_ops->version;
1612 ctx->minorversion = nfss->nfs_client->cl_minorversion;
1614 memcpy(&ctx->nfs_server._address, &nfss->nfs_client->cl_addr,
1615 ctx->nfs_server.addrlen);
1622 ctx->nfs_mod = nfss->nfs_client->cl_nfs_mod;
1623 __module_get(ctx->nfs_mod->owner);
1626 ctx->timeo = NFS_UNSPEC_TIMEO;
1627 ctx->retrans = NFS_UNSPEC_RETRANS;
1628 ctx->acregmin = NFS_DEF_ACREGMIN;
1629 ctx->acregmax = NFS_DEF_ACREGMAX;
1630 ctx->acdirmin = NFS_DEF_ACDIRMIN;
1631 ctx->acdirmax = NFS_DEF_ACDIRMAX;
1632 ctx->nfs_server.port = NFS_UNSPEC_PORT;
1633 ctx->nfs_server.protocol = XPRT_TRANSPORT_TCP;
1634 ctx->selected_flavor = RPC_AUTH_MAXFLAVOR;
1635 ctx->minorversion = 0;
1636 ctx->need_mount = true;
1637 ctx->xprtsec.policy = RPC_XPRTSEC_NONE;
1638 ctx->xprtsec.cert_serial = TLS_NO_CERT;
1639 ctx->xprtsec.privkey_serial = TLS_NO_PRIVKEY;
1643 fc->fs_private = ctx;