Lines Matching defs:nn

171 		const char *dname, int len, struct nfsd_net *nn)
184 crp = nfs4_client_to_reclaim(name, princhash, nn);
199 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
203 if (!nn->rec_file)
214 status = mnt_want_write_file(nn->rec_file);
218 dir = nn->rec_file->f_path.dentry;
243 if (nn->in_grace)
245 HEXDIR_LEN, nn);
246 vfs_fsync(nn->rec_file, 0);
253 mnt_drop_write_file(nn->rec_file);
290 nfsd4_list_rec_dir(recdir_func *f, struct nfsd_net *nn)
293 struct dentry *dir = nn->rec_file->f_path.dentry;
305 status = vfs_llseek(nn->rec_file, 0, SEEK_SET);
311 status = iterate_dir(nn->rec_file, &ctx.ctx);
322 status = f(dir, dentry, nn);
340 nfsd4_unlink_clid_dir(char *name, int namlen, struct nfsd_net *nn)
347 dir = nn->rec_file->f_path.dentry;
367 struct nfsd_net *nn)
379 crp = nfsd4_find_reclaim_client(name, nn);
382 nfs4_remove_reclaim_record(crp, nn);
391 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
393 if (!nn->rec_file || !test_bit(NFSD4_CLIENT_STABLE, &clp->cl_flags))
400 status = mnt_want_write_file(nn->rec_file);
409 status = nfsd4_unlink_clid_dir(dname, HEXDIR_LEN-1, nn);
412 vfs_fsync(nn->rec_file, 0);
413 if (nn->in_grace)
415 HEXDIR_LEN, nn);
418 mnt_drop_write_file(nn->rec_file);
426 purge_old(struct dentry *parent, struct dentry *child, struct nfsd_net *nn)
444 if (nfs4_has_reclaimed_state(name, nn))
459 nfsd4_recdir_purge_old(struct nfsd_net *nn)
463 nn->in_grace = false;
464 if (!nn->rec_file)
466 status = mnt_want_write_file(nn->rec_file);
469 status = nfsd4_list_rec_dir(purge_old, nn);
471 vfs_fsync(nn->rec_file, 0);
472 mnt_drop_write_file(nn->rec_file);
474 nfs4_release_reclaim(nn);
477 " directory %pD\n", nn->rec_file);
481 load_recdir(struct dentry *parent, struct dentry *child, struct nfsd_net *nn)
499 if (!nfs4_client_to_reclaim(name, princhash, nn))
508 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
510 if (!nn->rec_file)
513 status = nfsd4_list_rec_dir(load_recdir, nn);
516 " directory %pD\n", nn->rec_file);
527 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
534 BUG_ON(nn->rec_file);
544 nn->rec_file = filp_open(user_recovery_dirname, O_RDONLY | O_DIRECTORY, 0);
545 if (IS_ERR(nn->rec_file)) {
548 status = PTR_ERR(nn->rec_file);
549 nn->rec_file = NULL;
554 nn->in_grace = true;
561 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
563 if (!nn->rec_file)
565 fput(nn->rec_file);
566 nn->rec_file = NULL;
572 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
575 nn->reclaim_str_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
578 if (!nn->reclaim_str_hashtbl)
582 INIT_LIST_HEAD(&nn->reclaim_str_hashtbl[i]);
583 nn->reclaim_str_hashtbl_size = 0;
591 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
593 kfree(nn->reclaim_str_hashtbl);
641 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
643 nfs4_release_reclaim(nn);
681 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
702 crp = nfsd4_find_reclaim_client(name, nn);
754 __cld_pipe_upcall(struct rpc_pipe *pipe, void *cmsg, struct nfsd_net *nn)
762 msg.len = nn->client_tracking_ops->msglen;
778 cld_pipe_upcall(struct rpc_pipe *pipe, void *cmsg, struct nfsd_net *nn)
787 ret = __cld_pipe_upcall(pipe, cmsg, nn);
795 struct nfsd_net *nn)
806 if (nn->client_tracking_ops->version >= 2) {
841 struct cld_net *cn = nn->cld_net;
848 if (!nfs4_client_to_reclaim(name, princhash, nn)) {
853 return nn->client_tracking_ops->msglen;
865 struct nfsd_net *nn = net_generic(file_inode(filp)->i_sb->s_fs_info,
867 struct cld_net *cn = nn->cld_net;
870 if (mlen != nn->client_tracking_ops->msglen) {
872 nn->client_tracking_ops->msglen);
912 return __cld_pipe_inprogress_downcall(cmsg, nn);
993 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
996 if (nn->cld_net)
1023 nn->cld_net = cn;
1049 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
1050 struct cld_net *cn = nn->cld_net;
1056 kfree(nn->cld_net);
1057 nn->cld_net = NULL;
1061 alloc_cld_upcall(struct nfsd_net *nn)
1064 struct cld_net *cn = nn->cld_net;
1081 new->cu_u.cu_msg.cm_vers = nn->client_tracking_ops->version;
1109 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
1110 struct cld_net *cn = nn->cld_net;
1116 cup = alloc_cld_upcall(nn);
1127 ret = cld_pipe_upcall(cn->cn_pipe, &cup->cu_u.cu_msg, nn);
1146 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
1147 struct cld_net *cn = nn->cld_net;
1157 cup = alloc_cld_upcall(nn);
1192 ret = cld_pipe_upcall(cn->cn_pipe, cmsg, nn);
1212 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
1213 struct cld_net *cn = nn->cld_net;
1219 cup = alloc_cld_upcall(nn);
1230 ret = cld_pipe_upcall(cn->cn_pipe, &cup->cu_u.cu_msg, nn);
1254 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
1255 struct cld_net *cn = nn->cld_net;
1261 cup = alloc_cld_upcall(nn);
1273 ret = cld_pipe_upcall(cn->cn_pipe, &cup->cu_u.cu_msg, nn);
1293 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
1300 crp = nfsd4_find_reclaim_client(clp->cl_name, nn);
1305 if (nn->cld_net->cn_has_legacy) {
1321 crp = nfsd4_find_reclaim_client(name, nn);
1338 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
1339 struct cld_net *cn = nn->cld_net;
1350 crp = nfsd4_find_reclaim_client(clp->cl_name, nn);
1370 crp = nfsd4_find_reclaim_client(name, nn);
1408 nfsd4_cld_grace_start(struct nfsd_net *nn)
1412 struct cld_net *cn = nn->cld_net;
1414 cup = alloc_cld_upcall(nn);
1421 ret = cld_pipe_upcall(cn->cn_pipe, &cup->cu_u.cu_msg, nn);
1435 nfsd4_cld_grace_done_v0(struct nfsd_net *nn)
1439 struct cld_net *cn = nn->cld_net;
1441 cup = alloc_cld_upcall(nn);
1448 cup->cu_u.cu_msg.cm_u.cm_gracetime = nn->boot_time;
1449 ret = cld_pipe_upcall(cn->cn_pipe, &cup->cu_u.cu_msg, nn);
1464 nfsd4_cld_grace_done(struct nfsd_net *nn)
1468 struct cld_net *cn = nn->cld_net;
1470 cup = alloc_cld_upcall(nn);
1477 ret = cld_pipe_upcall(cn->cn_pipe, &cup->cu_u.cu_msg, nn);
1483 nfs4_release_reclaim(nn);
1491 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
1494 nn->reclaim_str_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
1497 if (!nn->reclaim_str_hashtbl)
1501 INIT_LIST_HEAD(&nn->reclaim_str_hashtbl[i]);
1502 nn->reclaim_str_hashtbl_size = 0;
1503 nn->track_reclaim_completes = true;
1504 atomic_set(&nn->nr_reclaim_complete, 0);
1512 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
1514 nn->track_reclaim_completes = false;
1515 kfree(nn->reclaim_str_hashtbl);
1519 cld_running(struct nfsd_net *nn)
1521 struct cld_net *cn = nn->cld_net;
1528 nfsd4_cld_get_version(struct nfsd_net *nn)
1532 struct cld_net *cn = nn->cld_net;
1535 cup = alloc_cld_upcall(nn);
1541 ret = cld_pipe_upcall(cn->cn_pipe, &cup->cu_u.cu_msg, nn);
1556 nn->client_tracking_ops = &nfsd4_cld_tracking_ops;
1559 nn->client_tracking_ops = &nfsd4_cld_tracking_ops_v2;
1578 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
1599 while (!(running = cld_running(nn)) && retries--)
1611 nn->cld_net->cn_tfm = tfm;
1613 status = nfsd4_cld_get_version(nn);
1617 status = nfsd4_cld_grace_start(nn);
1621 nfs4_release_reclaim(nn);
1637 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
1639 nfs4_release_reclaim(nn);
1871 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
1872 char *grace_start = nfsd4_cltrack_grace_start(nn->boot_time);
1908 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
1933 grace_start = nfsd4_cltrack_grace_start(nn->boot_time);
2003 nfsd4_umh_cltrack_grace_done(struct nfsd_net *nn)
2008 sprintf(timestr, "%lld", nn->boot_time);
2027 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
2033 nn->client_tracking_ops = &nfsd4_umh_tracking_ops;
2034 status = nn->client_tracking_ops->init(net);
2042 nn->client_tracking_ops = &nfsd4_legacy_tracking_ops;
2049 status = nn->client_tracking_ops->init(net);
2063 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
2067 if (nn->client_tracking_ops)
2071 nn->client_tracking_ops = &nfsd4_cld_tracking_ops;
2072 status = nn->client_tracking_ops->init(net);
2076 nn->client_tracking_ops = &nfsd4_cld_tracking_ops_v0;
2077 status = nn->client_tracking_ops->init(net);
2086 status = nn->client_tracking_ops->init(net);
2091 nn->client_tracking_ops = NULL;
2099 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
2101 if (nn->client_tracking_ops) {
2102 if (nn->client_tracking_ops->exit)
2103 nn->client_tracking_ops->exit(net);
2104 nn->client_tracking_ops = NULL;
2111 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
2113 if (nn->client_tracking_ops)
2114 nn->client_tracking_ops->create(clp);
2120 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
2122 if (nn->client_tracking_ops)
2123 nn->client_tracking_ops->remove(clp);
2129 struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
2131 if (nn->client_tracking_ops)
2132 return nn->client_tracking_ops->check(clp);
2138 nfsd4_record_grace_done(struct nfsd_net *nn)
2140 if (nn->client_tracking_ops)
2141 nn->client_tracking_ops->grace_done(nn);
2149 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
2150 struct cld_net *cn = nn->cld_net;