Lines Matching +full:non +full:- +full:negative

1 // SPDX-License-Identifier: GPL-2.0-only
103 ino_t ino = file_inode(file)->i_ino; in nfsctl_transaction_write()
108 return -EINVAL; in nfsctl_transaction_write()
124 if (! file->private_data) { in nfsctl_transaction_read()
126 * causes a 0-byte write so that the file can return in nfsctl_transaction_read()
153 seq = file->private_data; in exports_net_open()
154 seq->private = nn->svc_export_cache; in exports_net_open()
160 return exports_net_open(current->nsproxy->net_ns, file); in exports_proc_open()
172 return exports_net_open(inode->i_sb->s_fs_info, file); in exports_nfsd_open()
211 /*----------------------------------------------------------------------------*/
213 * payload - write methods
218 return file_inode(file)->i_sb->s_fs_info; in netns()
222 * write_unlock_ip - Release all locks used by a client
227 * buf: '\n'-terminated C string containing a
233 * On error: return code is negative errno value
245 return -EINVAL; in write_unlock_ip()
247 if (buf[size-1] != '\n') in write_unlock_ip()
248 return -EINVAL; in write_unlock_ip()
252 return -EINVAL; in write_unlock_ip()
255 return -EINVAL; in write_unlock_ip()
261 * write_unlock_fs - Release all locks on a local file system
266 * buf: '\n'-terminated C string containing the
272 * On error: return code is negative errno value
282 return -EINVAL; in write_unlock_fs()
284 if (buf[size-1] != '\n') in write_unlock_fs()
285 return -EINVAL; in write_unlock_fs()
289 return -EINVAL; in write_unlock_fs()
304 error = nlmsvc_unlock_all_by_sb(path.dentry->d_sb); in write_unlock_fs()
311 * write_filehandle - Get a variable-length NFS file handle by path
313 * On input, the buffer contains a '\n'-terminated C string comprised of
325 * On success: passed-in buffer filled with '\n'-terminated C
329 * On error: return code is negative errno value
341 return -EINVAL; in write_filehandle()
343 if (buf[size-1] != '\n') in write_filehandle()
344 return -EINVAL; in write_filehandle()
345 buf[size-1] = 0; in write_filehandle()
350 return -EINVAL; in write_filehandle()
355 return -EINVAL; in write_filehandle()
362 return -EINVAL; in write_filehandle()
366 return -EINVAL; in write_filehandle()
371 return -ENOMEM; in write_filehandle()
381 mesg[-1] = '\n'; in write_filehandle()
382 return mesg - buf; in write_filehandle()
386 * write_threads - Start NFSD, or report the current number of running threads
392 * On success: passed-in buffer filled with '\n'-terminated C
404 * size: non-zero length of C string in @buf
407 * passed-in buffer filled with '\n'-terminated C
411 * On error: return code is zero or a negative errno value
425 return -EINVAL; in write_threads()
426 rv = nfsd_svc(newthreads, net, file->f_cred); in write_threads()
436 * write_pool_threads - Set or report the current number of threads per pool
445 * buf: C string containing whitespace-
449 * size: non-zero length of C string in @buf
451 * On success: passed-in buffer filled with '\n'-terminated C
455 * On error: return code is zero or a negative errno value
484 rv = -ENOMEM; in write_pool_threads()
491 if (rv == -ENOENT) in write_pool_threads()
495 rv = -EINVAL; in write_pool_threads()
511 snprintf(mesg, size, "%d%c", nthreads[i], (i == npools-1 ? '\n' : ' ')); in write_pool_threads()
513 size -= len; in write_pool_threads()
516 rv = mesg - buf; in write_pool_threads()
537 * +4, unless -4.0 is present. in nfsd_print_version_support()
541 supported ? '+' : '-', vers, minor); in nfsd_print_version_support()
554 if (nn->nfsd_serv) in __write_versions()
556 * nn->nfsd_serv->sv_xdrsize, and reallocing in __write_versions()
559 return -EBUSY; in __write_versions()
560 if (buf[size-1] != '\n') in __write_versions()
561 return -EINVAL; in __write_versions()
562 buf[size-1] = 0; in __write_versions()
566 if (len <= 0) return -EINVAL; in __write_versions()
571 if (sign == '+' || sign == '-') in __write_versions()
577 return -EINVAL; in __write_versions()
579 return -EINVAL; in __write_versions()
582 cmd = sign == '-' ? NFSD_CLEAR : NFSD_SET; in __write_versions()
591 return -EINVAL; in __write_versions()
595 * or we have -4 and at least one minor is enabled. in __write_versions()
604 return -EINVAL; in __write_versions()
622 minor = -1; in __write_versions()
628 remaining -= len; in __write_versions()
639 return -EINVAL; in __write_versions()
644 * write_versions - Set or report the available NFS protocol versions
650 * On success: passed-in buffer filled with '\n'-terminated C
651 * string containing positive or negative integer
655 * On error: return code is zero or a negative errno value
660 * buf: C string containing whitespace-
661 * separated positive or negative
664 * or disable ("-n")
665 * size: non-zero length of C string in @buf
668 * been updated; passed-in buffer filled with
669 * '\n'-terminated C string containing positive
670 * or negative integer values representing the
673 * On error: return code is zero or a negative errno value
686 * Zero-length write. Return a list of NFSD's current listener
693 if (nn->nfsd_serv == NULL) in __write_ports_names()
695 return svc_xprt_names(nn->nfsd_serv, buf, SIMPLE_TRANSACTION_LIMIT); in __write_ports_names()
711 return -EINVAL; in __write_ports_addfd()
715 return -EINVAL; in __write_ports_addfd()
722 err = svc_addsock(nn->nfsd_serv, fd, buf, SIMPLE_TRANSACTION_LIMIT, cred); in __write_ports_addfd()
725 !nn->nfsd_serv->sv_nrthreads && !xchg(&nn->keep_active, 1)) in __write_ports_addfd()
726 svc_get(nn->nfsd_serv); in __write_ports_addfd()
744 return -EINVAL; in __write_ports_addxprt()
747 return -EINVAL; in __write_ports_addxprt()
753 err = svc_xprt_create(nn->nfsd_serv, transport, net, in __write_ports_addxprt()
758 err = svc_xprt_create(nn->nfsd_serv, transport, net, in __write_ports_addxprt()
760 if (err < 0 && err != -EAFNOSUPPORT) in __write_ports_addxprt()
763 if (!nn->nfsd_serv->sv_nrthreads && !xchg(&nn->keep_active, 1)) in __write_ports_addxprt()
764 svc_get(nn->nfsd_serv); in __write_ports_addxprt()
769 xprt = svc_find_xprt(nn->nfsd_serv, transport, net, PF_INET, port); in __write_ports_addxprt()
786 return __write_ports_addfd(buf, net, file->f_cred); in __write_ports()
789 return __write_ports_addxprt(buf, net, file->f_cred); in __write_ports()
791 return -EINVAL; in __write_ports()
795 * write_ports - Pass a socket file descriptor or transport name to listen on
801 * On success: passed-in buffer filled with a '\n'-terminated C
802 * string containing a whitespace-separated list of
805 * On error: return code is zero or a negative errno value
816 * size: non-zero length of C string in @buf
819 * passed-in buffer filled with a '\n'-terminated C
823 * On error: return code is a negative errno value
832 * size: non-zero length of C string in @buf
835 * On error: return code is a negative errno value
851 * write_maxblksize - Set or report the current NFS blksize
863 * size: non-zero length of C string in @buf
865 * On success: passed-in buffer filled with '\n'-terminated C string
869 * On error: return code is zero or a negative errno value
886 bsize &= ~(1024-1); in write_maxblksize()
888 if (nn->nfsd_serv) { in write_maxblksize()
890 return -EBUSY; in write_maxblksize()
901 * write_maxconn - Set or report the current max number of connections
912 * size: non-zero length of C string in @buf
914 * On success: passed-in buffer filled with '\n'-terminated C string
918 * On error: return code is zero or a negative errno value
924 unsigned int maxconn = nn->max_connections; in write_maxconn()
931 nn->max_connections = maxconn; in write_maxconn()
945 if (nn->nfsd_serv) in __nfsd4_write_time()
946 return -EBUSY; in __nfsd4_write_time()
954 * - Too short: the briefest network outage may in __nfsd4_write_time()
957 * - Too long: do you really want reboot recovery in __nfsd4_write_time()
963 return -EINVAL; in __nfsd4_write_time()
982 * write_leasetime - Set or report the current NFSv4 lease time
994 * size: non-zero length of C string in @buf
996 * On success: passed-in buffer filled with '\n'-terminated C
1000 * On error: return code is zero or a negative errno value
1005 return nfsd4_write_time(file, buf, size, &nn->nfsd4_lease, nn); in write_leasetime()
1009 * write_gracetime - Set or report current NFSv4 grace period time
1014 * lease-period time, but we don't try to enforce this. (In the common
1021 return nfsd4_write_time(file, buf, size, &nn->nfsd4_grace, nn); in write_gracetime()
1032 if (nn->nfsd_serv) in __write_recoverydir()
1033 return -EBUSY; in __write_recoverydir()
1034 if (size > PATH_MAX || buf[size-1] != '\n') in __write_recoverydir()
1035 return -EINVAL; in __write_recoverydir()
1036 buf[size-1] = 0; in __write_recoverydir()
1041 return -EINVAL; in __write_recoverydir()
1053 * write_recoverydir - Set or report the pathname of the recovery directory
1066 * size: non-zero length of C string in @buf
1068 * On success: passed-in buffer filled with '\n'-terminated C string
1071 * On error: return code is zero or a negative errno value
1085 * write_v4_end_grace - release grace period for nfsd's v4.x lock manager
1094 * size: non-zero length of C string in @buf
1096 * passed-in buffer filled with "Y" or "N" with a newline
1097 * and NULL-terminated C string. This indicates whether
1113 if (!nn->nfsd_serv) in write_v4_end_grace()
1114 return -EBUSY; in write_v4_end_grace()
1118 return -EINVAL; in write_v4_end_grace()
1123 nn->grace_ended ? 'Y' : 'N'); in write_v4_end_grace()
1128 /*----------------------------------------------------------------------------*/
1140 inode->i_ino = iunique(sb, NFSD_MaxReserved); in nfsd_get_inode()
1141 inode->i_mode = mode; in nfsd_get_inode()
1142 inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode); in nfsd_get_inode()
1145 inode->i_fop = &simple_dir_operations; in nfsd_get_inode()
1146 inode->i_op = &simple_dir_inode_operations; in nfsd_get_inode()
1159 inode = nfsd_get_inode(dir->i_sb, mode); in __nfsd_mkdir()
1161 return -ENOMEM; in __nfsd_mkdir()
1163 inode->i_private = ncl; in __nfsd_mkdir()
1164 kref_get(&ncl->cl_ref); in __nfsd_mkdir()
1174 struct inode *dir = parent->d_inode; in nfsd_mkdir()
1176 int ret = -ENOMEM; in nfsd_mkdir()
1196 struct nfsdfs_client *ncl = inode->i_private; in clear_ncl()
1198 inode->i_private = NULL; in clear_ncl()
1199 kref_put(&ncl->cl_ref, ncl->cl_release); in clear_ncl()
1204 struct nfsdfs_client *nc = inode->i_private; in __get_nfsdfs_client()
1207 kref_get(&nc->cl_ref); in __get_nfsdfs_client()
1238 list_for_each_entry_safe(dentry, tmp, &root->d_subdirs, d_child) { in nfsdfs_remove_files()
1259 for (i = 0; files->name && files->name[0]; i++, files++) { in nfsdfs_create_files()
1260 dentry = d_alloc_name(root, files->name); in nfsdfs_create_files()
1263 inode = nfsd_get_inode(d_inode(root)->i_sb, in nfsdfs_create_files()
1264 S_IFREG | files->mode); in nfsdfs_create_files()
1269 inode->i_fop = files->ops; in nfsdfs_create_files()
1270 inode->i_private = __get_nfsdfs_client(dir); in nfsdfs_create_files()
1281 return -ENOMEM; in nfsdfs_create_files()
1296 dentry = nfsd_mkdir(nn->nfsd_client_dir, ncl, name); in nfsd_client_mkdir()
1310 struct inode *dir = d_inode(dentry->d_parent); in nfsd_client_rmdir()
1328 struct nfsd_net *nn = net_generic(current->nsproxy->net_ns, in nfsd_fill_super()
1335 /* Per-export io stats use same ops as exports file */ in nfsd_fill_super()
1370 dentry = nfsd_mkdir(sb->s_root, NULL, "clients"); in nfsd_fill_super()
1373 nn->nfsd_client_dir = dentry; in nfsd_fill_super()
1379 return get_tree_keyed(fc, nfsd_fill_super, get_net(fc->net_ns)); in nfsd_fs_get_tree()
1384 if (fc->s_fs_info) in nfsd_fs_free_fc()
1385 put_net(fc->s_fs_info); in nfsd_fs_free_fc()
1395 put_user_ns(fc->user_ns); in nfsd_init_fs_context()
1396 fc->user_ns = get_user_ns(fc->net_ns->user_ns); in nfsd_init_fs_context()
1397 fc->ops = &nfsd_fs_context_ops; in nfsd_init_fs_context()
1403 struct net *net = sb->s_fs_info; in nfsd_umount()
1426 return -ENOMEM; in create_proc_exports_entry()
1430 return -ENOMEM; in create_proc_exports_entry()
1454 nn->nfsd_versions = NULL; in nfsd_init_net()
1455 nn->nfsd4_minorversions = NULL; in nfsd_init_net()
1462 get_random_bytes(&nn->siphash_key, sizeof(nn->siphash_key)); in nfsd_init_net()
1463 seqlock_init(&nn->writeverf_lock); in nfsd_init_net()
1511 nfsd_lockd_init(); /* lockd->nfsd callbacks */ in init_nfsd()