Lines Matching +full:non +full:- +full:negative
1 // SPDX-License-Identifier: GPL-2.0-only
101 ino_t ino = file_inode(file)->i_ino; in nfsctl_transaction_write()
106 return -EINVAL; in nfsctl_transaction_write()
122 if (! file->private_data) { in nfsctl_transaction_read()
124 * causes a 0-byte write so that the file can return in nfsctl_transaction_read()
151 seq = file->private_data; in exports_net_open()
152 seq->private = nn->svc_export_cache; in exports_net_open()
158 return exports_net_open(current->nsproxy->net_ns, file); in exports_proc_open()
170 return exports_net_open(inode->i_sb->s_fs_info, file); in exports_nfsd_open()
232 /*----------------------------------------------------------------------------*/
234 * payload - write methods
239 return file_inode(file)->i_sb->s_fs_info; in netns()
243 * write_unlock_ip - Release all locks used by a client
248 * buf: '\n'-terminated C string containing a
254 * On error: return code is negative errno value
266 return -EINVAL; in write_unlock_ip()
268 if (buf[size-1] != '\n') in write_unlock_ip()
269 return -EINVAL; in write_unlock_ip()
273 return -EINVAL; in write_unlock_ip()
276 return -EINVAL; in write_unlock_ip()
282 * write_unlock_fs - Release all locks on a local file system
287 * buf: '\n'-terminated C string containing the
293 * On error: return code is negative errno value
303 return -EINVAL; in write_unlock_fs()
305 if (buf[size-1] != '\n') in write_unlock_fs()
306 return -EINVAL; in write_unlock_fs()
310 return -EINVAL; in write_unlock_fs()
325 error = nlmsvc_unlock_all_by_sb(path.dentry->d_sb); in write_unlock_fs()
332 * write_filehandle - Get a variable-length NFS file handle by path
334 * On input, the buffer contains a '\n'-terminated C string comprised of
346 * On success: passed-in buffer filled with '\n'-terminated C
350 * On error: return code is negative errno value
362 return -EINVAL; in write_filehandle()
364 if (buf[size-1] != '\n') in write_filehandle()
365 return -EINVAL; in write_filehandle()
366 buf[size-1] = 0; in write_filehandle()
371 return -EINVAL; in write_filehandle()
376 return -EINVAL; in write_filehandle()
383 return -EINVAL; in write_filehandle()
387 return -EINVAL; in write_filehandle()
392 return -ENOMEM; in write_filehandle()
402 mesg[-1] = '\n'; in write_filehandle()
403 return mesg - buf; in write_filehandle()
407 * write_threads - Start NFSD, or report the current number of running threads
413 * On success: passed-in buffer filled with '\n'-terminated C
425 * size: non-zero length of C string in @buf
428 * passed-in buffer filled with '\n'-terminated C
432 * On error: return code is zero or a negative errno value
446 return -EINVAL; in write_threads()
447 rv = nfsd_svc(newthreads, net, file->f_cred); in write_threads()
457 * write_pool_threads - Set or report the current number of threads per pool
466 * buf: C string containing whitespace-
470 * size: non-zero length of C string in @buf
472 * On success: passed-in buffer filled with '\n'-terminated C
476 * On error: return code is zero or a negative errno value
505 rv = -ENOMEM; in write_pool_threads()
512 if (rv == -ENOENT) in write_pool_threads()
516 rv = -EINVAL; in write_pool_threads()
532 snprintf(mesg, size, "%d%c", nthreads[i], (i == npools-1 ? '\n' : ' ')); in write_pool_threads()
534 size -= len; in write_pool_threads()
537 rv = mesg - buf; in write_pool_threads()
558 * +4, unless -4.0 is present. in nfsd_print_version_support()
562 supported ? '+' : '-', vers, minor); in nfsd_print_version_support()
575 if (nn->nfsd_serv) in __write_versions()
577 * nn->nfsd_serv->sv_xdrsize, and reallocing in __write_versions()
580 return -EBUSY; in __write_versions()
581 if (buf[size-1] != '\n') in __write_versions()
582 return -EINVAL; in __write_versions()
583 buf[size-1] = 0; in __write_versions()
587 if (len <= 0) return -EINVAL; in __write_versions()
592 if (sign == '+' || sign == '-') in __write_versions()
598 return -EINVAL; in __write_versions()
600 return -EINVAL; in __write_versions()
603 cmd = sign == '-' ? NFSD_CLEAR : NFSD_SET; in __write_versions()
612 return -EINVAL; in __write_versions()
616 * or we have -4 and at least one minor is enabled. in __write_versions()
625 return -EINVAL; in __write_versions()
644 minor = -1; in __write_versions()
650 remaining -= len; in __write_versions()
661 return -EINVAL; in __write_versions()
666 * write_versions - Set or report the available NFS protocol versions
672 * On success: passed-in buffer filled with '\n'-terminated C
673 * string containing positive or negative integer
677 * On error: return code is zero or a negative errno value
682 * buf: C string containing whitespace-
683 * separated positive or negative
686 * or disable ("-n")
687 * size: non-zero length of C string in @buf
690 * been updated; passed-in buffer filled with
691 * '\n'-terminated C string containing positive
692 * or negative integer values representing the
695 * On error: return code is zero or a negative errno value
708 * Zero-length write. Return a list of NFSD's current listener
715 if (nn->nfsd_serv == NULL) in __write_ports_names()
717 return svc_xprt_names(nn->nfsd_serv, buf, SIMPLE_TRANSACTION_LIMIT); in __write_ports_names()
733 return -EINVAL; in __write_ports_addfd()
737 return -EINVAL; in __write_ports_addfd()
744 err = svc_addsock(nn->nfsd_serv, fd, buf, SIMPLE_TRANSACTION_LIMIT, cred); in __write_ports_addfd()
751 nn->nfsd_serv->sv_nrthreads--; in __write_ports_addfd()
767 return -EINVAL; in __write_ports_addxprt()
770 return -EINVAL; in __write_ports_addxprt()
776 err = svc_create_xprt(nn->nfsd_serv, transport, net, in __write_ports_addxprt()
781 err = svc_create_xprt(nn->nfsd_serv, transport, net, in __write_ports_addxprt()
783 if (err < 0 && err != -EAFNOSUPPORT) in __write_ports_addxprt()
787 nn->nfsd_serv->sv_nrthreads--; in __write_ports_addxprt()
790 xprt = svc_find_xprt(nn->nfsd_serv, transport, net, PF_INET, port); in __write_ports_addxprt()
796 if (!list_empty(&nn->nfsd_serv->sv_permsocks)) in __write_ports_addxprt()
797 nn->nfsd_serv->sv_nrthreads--; in __write_ports_addxprt()
810 return __write_ports_addfd(buf, net, file->f_cred); in __write_ports()
813 return __write_ports_addxprt(buf, net, file->f_cred); in __write_ports()
815 return -EINVAL; in __write_ports()
819 * write_ports - Pass a socket file descriptor or transport name to listen on
825 * On success: passed-in buffer filled with a '\n'-terminated C
826 * string containing a whitespace-separated list of
829 * On error: return code is zero or a negative errno value
840 * size: non-zero length of C string in @buf
843 * passed-in buffer filled with a '\n'-terminated C
847 * On error: return code is a negative errno value
856 * size: non-zero length of C string in @buf
859 * On error: return code is a negative errno value
875 * write_maxblksize - Set or report the current NFS blksize
887 * size: non-zero length of C string in @buf
889 * On success: passed-in buffer filled with '\n'-terminated C string
893 * On error: return code is zero or a negative errno value
910 bsize &= ~(1024-1); in write_maxblksize()
912 if (nn->nfsd_serv) { in write_maxblksize()
914 return -EBUSY; in write_maxblksize()
925 * write_maxconn - Set or report the current max number of connections
936 * size: non-zero length of C string in @buf
938 * On success: passed-in buffer filled with '\n'-terminated C string
942 * On error: return code is zero or a negative errno value
948 unsigned int maxconn = nn->max_connections; in write_maxconn()
955 nn->max_connections = maxconn; in write_maxconn()
969 if (nn->nfsd_serv) in __nfsd4_write_time()
970 return -EBUSY; in __nfsd4_write_time()
978 * - Too short: the briefest network outage may in __nfsd4_write_time()
981 * - Too long: do you really want reboot recovery in __nfsd4_write_time()
987 return -EINVAL; in __nfsd4_write_time()
1006 * write_leasetime - Set or report the current NFSv4 lease time
1018 * size: non-zero length of C string in @buf
1020 * On success: passed-in buffer filled with '\n'-terminated C
1024 * On error: return code is zero or a negative errno value
1029 return nfsd4_write_time(file, buf, size, &nn->nfsd4_lease, nn); in write_leasetime()
1033 * write_gracetime - Set or report current NFSv4 grace period time
1038 * lease-period time, but we don't try to enforce this. (In the common
1045 return nfsd4_write_time(file, buf, size, &nn->nfsd4_grace, nn); in write_gracetime()
1056 if (nn->nfsd_serv) in __write_recoverydir()
1057 return -EBUSY; in __write_recoverydir()
1058 if (size > PATH_MAX || buf[size-1] != '\n') in __write_recoverydir()
1059 return -EINVAL; in __write_recoverydir()
1060 buf[size-1] = 0; in __write_recoverydir()
1065 return -EINVAL; in __write_recoverydir()
1077 * write_recoverydir - Set or report the pathname of the recovery directory
1090 * size: non-zero length of C string in @buf
1092 * On success: passed-in buffer filled with '\n'-terminated C string
1095 * On error: return code is zero or a negative errno value
1109 * write_v4_end_grace - release grace period for nfsd's v4.x lock manager
1118 * size: non-zero length of C string in @buf
1120 * passed-in buffer filled with "Y" or "N" with a newline
1121 * and NULL-terminated C string. This indicates whether
1137 if (!nn->nfsd_serv) in write_v4_end_grace()
1138 return -EBUSY; in write_v4_end_grace()
1142 return -EINVAL; in write_v4_end_grace()
1147 nn->grace_ended ? 'Y' : 'N'); in write_v4_end_grace()
1152 /*----------------------------------------------------------------------------*/
1164 inode->i_ino = iunique(sb, NFSD_MaxReserved); in nfsd_get_inode()
1165 inode->i_mode = mode; in nfsd_get_inode()
1166 inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode); in nfsd_get_inode()
1169 inode->i_fop = &simple_dir_operations; in nfsd_get_inode()
1170 inode->i_op = &simple_dir_inode_operations; in nfsd_get_inode()
1183 inode = nfsd_get_inode(dir->i_sb, mode); in __nfsd_mkdir()
1185 return -ENOMEM; in __nfsd_mkdir()
1187 inode->i_private = ncl; in __nfsd_mkdir()
1188 kref_get(&ncl->cl_ref); in __nfsd_mkdir()
1198 struct inode *dir = parent->d_inode; in nfsd_mkdir()
1200 int ret = -ENOMEM; in nfsd_mkdir()
1220 struct nfsdfs_client *ncl = inode->i_private; in clear_ncl()
1222 inode->i_private = NULL; in clear_ncl()
1223 kref_put(&ncl->cl_ref, ncl->cl_release); in clear_ncl()
1228 struct nfsdfs_client *nc = inode->i_private; in __get_nfsdfs_client()
1231 kref_get(&nc->cl_ref); in __get_nfsdfs_client()
1261 list_for_each_entry_safe(dentry, tmp, &root->d_subdirs, d_child) { in nfsdfs_remove_files()
1282 for (i = 0; files->name && files->name[0]; i++, files++) { in nfsdfs_create_files()
1283 dentry = d_alloc_name(root, files->name); in nfsdfs_create_files()
1286 inode = nfsd_get_inode(d_inode(root)->i_sb, in nfsdfs_create_files()
1287 S_IFREG | files->mode); in nfsdfs_create_files()
1292 inode->i_fop = files->ops; in nfsdfs_create_files()
1293 inode->i_private = __get_nfsdfs_client(dir); in nfsdfs_create_files()
1304 return -ENOMEM; in nfsdfs_create_files()
1319 dentry = nfsd_mkdir(nn->nfsd_client_dir, ncl, name); in nfsd_client_mkdir()
1333 struct inode *dir = d_inode(dentry->d_parent); in nfsd_client_rmdir()
1351 struct nfsd_net *nn = net_generic(current->nsproxy->net_ns, in nfsd_fill_super()
1358 /* Per-export io stats use same ops as exports file */ in nfsd_fill_super()
1390 dentry = nfsd_mkdir(sb->s_root, NULL, "clients"); in nfsd_fill_super()
1393 nn->nfsd_client_dir = dentry; in nfsd_fill_super()
1399 return get_tree_keyed(fc, nfsd_fill_super, get_net(fc->net_ns)); in nfsd_fs_get_tree()
1404 if (fc->s_fs_info) in nfsd_fs_free_fc()
1405 put_net(fc->s_fs_info); in nfsd_fs_free_fc()
1415 put_user_ns(fc->user_ns); in nfsd_init_fs_context()
1416 fc->user_ns = get_user_ns(fc->net_ns->user_ns); in nfsd_init_fs_context()
1417 fc->ops = &nfsd_fs_context_ops; in nfsd_init_fs_context()
1423 struct net *net = sb->s_fs_info; in nfsd_umount()
1446 return -ENOMEM; in create_proc_exports_entry()
1450 return -ENOMEM; in create_proc_exports_entry()
1474 nn->nfsd_versions = NULL; in nfsd_init_net()
1475 nn->nfsd4_minorversions = NULL; in nfsd_init_net()
1479 nn->nfsd4_lease = 90; /* default lease time */ in nfsd_init_net()
1480 nn->nfsd4_grace = 90; in nfsd_init_net()
1481 nn->somebody_reclaimed = false; in nfsd_init_net()
1482 nn->track_reclaim_completes = false; in nfsd_init_net()
1483 nn->clverifier_counter = prandom_u32(); in nfsd_init_net()
1484 nn->clientid_base = prandom_u32(); in nfsd_init_net()
1485 nn->clientid_counter = nn->clientid_base + 1; in nfsd_init_net()
1486 nn->s2s_cp_cl_id = nn->clientid_counter++; in nfsd_init_net()
1488 atomic_set(&nn->ntf_refcnt, 0); in nfsd_init_net()
1489 init_waitqueue_head(&nn->ntf_wq); in nfsd_init_net()
1490 seqlock_init(&nn->boot_lock); in nfsd_init_net()
1539 nfsd_lockd_init(); /* lockd->nfsd callbacks */ in init_nfsd()