Symbol: delegation
fs/fcntl.c
448
struct delegation deleg;
fs/locks.c
1881
int fcntl_getdeleg(struct file *filp, struct delegation *deleg)
fs/locks.c
2206
int fcntl_setdeleg(unsigned int fd, struct file *filp, struct delegation *deleg)
fs/nfs/callback_proc.c
33
struct nfs_delegation *delegation;
fs/nfs/callback_proc.c
55
delegation = nfs4_get_valid_delegation(inode);
fs/nfs/callback_proc.c
56
if (!delegation)
fs/nfs/callback_proc.c
58
if ((delegation->type & FMODE_WRITE) == 0) {
fs/nfs/callback_proc.c
59
nfs_put_delegation(delegation);
fs/nfs/callback_proc.c
62
res->change_attr = delegation->change_attr;
fs/nfs/callback_proc.c
63
nfs_put_delegation(delegation);
fs/nfs/delegation.c
1003
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1005
list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
fs/nfs/delegation.c
1006
if ((delegation->type == (FMODE_READ|FMODE_WRITE)) && !(flags & FMODE_WRITE))
fs/nfs/delegation.c
1008
if (delegation->type & flags)
fs/nfs/delegation.c
1009
nfs_mark_return_if_closed_delegation(server, delegation);
fs/nfs/delegation.c
1028
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1033
delegation = rcu_dereference(NFS_I(inode)->delegation);
fs/nfs/delegation.c
1034
if (delegation == NULL)
fs/nfs/delegation.c
1037
nfs4_stateid_copy(&tmp, &delegation->stateid);
fs/nfs/delegation.c
104
static bool nfs4_is_valid_delegation(const struct nfs_delegation *delegation,
fs/nfs/delegation.c
1040
if (!nfs4_stateid_match_other(stateid, &delegation->stateid))
fs/nfs/delegation.c
1042
spin_lock(&delegation->lock);
fs/nfs/delegation.c
1044
if (nfs4_stateid_is_newer(&delegation->stateid, stateid)) {
fs/nfs/delegation.c
1045
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
1048
delegation->stateid.seqid = stateid->seqid;
fs/nfs/delegation.c
1050
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
1052
nfs_mark_delegation_revoked(NFS_SERVER(inode), delegation);
fs/nfs/delegation.c
1063
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1069
delegation = rcu_dereference(NFS_I(inode)->delegation);
fs/nfs/delegation.c
107
if (delegation != NULL && (delegation->type & type) == type &&
fs/nfs/delegation.c
1070
if (!delegation)
fs/nfs/delegation.c
1073
spin_lock(&delegation->lock);
fs/nfs/delegation.c
1074
if (!nfs4_stateid_match_other(stateid, &delegation->stateid))
fs/nfs/delegation.c
1078
if (nfs4_stateid_is_newer(&delegation->stateid, stateid))
fs/nfs/delegation.c
108
!test_bit(NFS_DELEGATION_REVOKED, &delegation->flags) &&
fs/nfs/delegation.c
1080
if (delegation->stateid.seqid != stateid->seqid)
fs/nfs/delegation.c
1081
delegation->stateid.seqid = stateid->seqid;
fs/nfs/delegation.c
1084
nfs_mark_delegation_revoked(NFS_SERVER(inode), delegation);
fs/nfs/delegation.c
1085
clear_bit(NFS_DELEGATION_RETURNING, &delegation->flags);
fs/nfs/delegation.c
1086
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
1087
if (nfs_detach_delegation(NFS_I(inode), delegation, NFS_SERVER(inode)))
fs/nfs/delegation.c
1088
nfs_put_delegation(delegation);
fs/nfs/delegation.c
109
!test_bit(NFS_DELEGATION_RETURNING, &delegation->flags))
fs/nfs/delegation.c
1092
clear_bit(NFS_DELEGATION_RETURNING, &delegation->flags);
fs/nfs/delegation.c
1094
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
116
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1169
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1171
delegation = nfs4_get_valid_delegation(inode);
fs/nfs/delegation.c
1172
if (!delegation)
fs/nfs/delegation.c
1176
!clp->cl_mvops->match_stateid(&delegation->stateid, stateid)) {
fs/nfs/delegation.c
1177
nfs_put_delegation(delegation);
fs/nfs/delegation.c
1181
nfs_mark_return_delegation(server, delegation);
fs/nfs/delegation.c
1182
nfs_put_delegation(delegation);
fs/nfs/delegation.c
119
delegation = rcu_dereference(NFS_I(inode)->delegation);
fs/nfs/delegation.c
1196
struct nfs_delegation *delegation;
fs/nfs/delegation.c
120
if (!nfs4_is_valid_delegation(delegation, 0) ||
fs/nfs/delegation.c
1200
hlist_for_each_entry_rcu(delegation, head, hash) {
fs/nfs/delegation.c
1201
spin_lock(&delegation->lock);
fs/nfs/delegation.c
1202
if (delegation->inode != NULL &&
fs/nfs/delegation.c
1203
!test_bit(NFS_DELEGATION_REVOKED, &delegation->flags) &&
fs/nfs/delegation.c
1204
nfs_compare_fh(fhandle, &NFS_I(delegation->inode)->fh) == 0) {
fs/nfs/delegation.c
1207
res = igrab(delegation->inode);
fs/nfs/delegation.c
1209
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
121
!refcount_inc_not_zero(&delegation->refcount))
fs/nfs/delegation.c
1219
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
122
delegation = NULL;
fs/nfs/delegation.c
125
return delegation;
fs/nfs/delegation.c
1252
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1254
list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
fs/nfs/delegation.c
1259
if (test_bit(NFS_DELEGATION_TEST_EXPIRED, &delegation->flags))
fs/nfs/delegation.c
1261
set_bit(NFS_DELEGATION_NEED_RECLAIM, &delegation->flags);
fs/nfs/delegation.c
1283
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1287
list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
fs/nfs/delegation.c
1289
&delegation->flags) ||
fs/nfs/delegation.c
1291
&delegation->flags) == 0)
fs/nfs/delegation.c
1293
inode = nfs_delegation_grab_inode(delegation);
fs/nfs/delegation.c
1296
delegation = nfs_start_delegation_return(NFS_I(inode));
fs/nfs/delegation.c
1298
if (delegation != NULL) {
fs/nfs/delegation.c
1299
if (nfs_detach_delegation(NFS_I(inode), delegation,
fs/nfs/delegation.c
1301
nfs_mark_delegation_revoked(server, delegation);
fs/nfs/delegation.c
1302
nfs_put_delegation(delegation);
fs/nfs/delegation.c
1305
nfs_put_delegation(delegation);
fs/nfs/delegation.c
131
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1334
struct nfs_delegation *delegation)
fs/nfs/delegation.c
1336
if (delegation->stateid.type == NFS4_INVALID_STATEID_TYPE)
fs/nfs/delegation.c
1338
clear_bit(NFS_DELEGATION_NEED_RECLAIM, &delegation->flags);
fs/nfs/delegation.c
1339
set_bit(NFS_DELEGATION_TEST_EXPIRED, &delegation->flags);
fs/nfs/delegation.c
1347
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1350
delegation = rcu_dereference(NFS_I(inode)->delegation);
fs/nfs/delegation.c
1351
if (delegation)
fs/nfs/delegation.c
1352
nfs_mark_test_expired_delegation(server, delegation);
fs/nfs/delegation.c
1359
struct nfs_delegation *delegation;
fs/nfs/delegation.c
136
delegation = rcu_dereference(NFS_I(inode)->delegation);
fs/nfs/delegation.c
1361
list_for_each_entry_rcu(delegation, &server->delegations, super_list)
fs/nfs/delegation.c
1362
nfs_mark_test_expired_delegation(server, delegation);
fs/nfs/delegation.c
137
if (nfs4_is_valid_delegation(delegation, type)) {
fs/nfs/delegation.c
139
nfs_mark_delegation_referenced(delegation);
fs/nfs/delegation.c
1413
struct nfs_delegation *delegation;
fs/nfs/delegation.c
142
!test_bit(NFS_DELEGATION_DELEGTIME, &delegation->flags))
fs/nfs/delegation.c
1424
list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
fs/nfs/delegation.c
1426
&delegation->flags) ||
fs/nfs/delegation.c
1428
&delegation->flags) == 0 ||
fs/nfs/delegation.c
1429
delegation->test_gen == gen)
fs/nfs/delegation.c
1431
inode = nfs_delegation_grab_inode(delegation);
fs/nfs/delegation.c
1434
spin_lock(&delegation->lock);
fs/nfs/delegation.c
1435
cred = get_cred_rcu(delegation->cred);
fs/nfs/delegation.c
1436
nfs4_stateid_copy(&stateid, &delegation->stateid);
fs/nfs/delegation.c
1437
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
1438
delegation->test_gen = gen;
fs/nfs/delegation.c
1439
clear_bit(NFS_DELEGATION_TEST_EXPIRED, &delegation->flags);
fs/nfs/delegation.c
1478
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1482
delegation = rcu_dereference(NFS_I(inode)->delegation);
fs/nfs/delegation.c
1483
if (delegation &&
fs/nfs/delegation.c
1484
nfs4_stateid_match_or_older(&delegation->stateid, stateid) &&
fs/nfs/delegation.c
1485
!test_bit(NFS_DELEGATION_REVOKED, &delegation->flags)) {
fs/nfs/delegation.c
1486
nfs_mark_test_expired_delegation(NFS_SERVER(inode), delegation);
fs/nfs/delegation.c
1526
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1532
delegation = rcu_dereference(NFS_I(inode)->delegation);
fs/nfs/delegation.c
1533
if (delegation != NULL &&
fs/nfs/delegation.c
1534
nfs4_stateid_match_other(dst, &delegation->stateid) &&
fs/nfs/delegation.c
1535
nfs4_stateid_is_newer(&delegation->stateid, dst) &&
fs/nfs/delegation.c
1536
!test_bit(NFS_DELEGATION_REVOKED, &delegation->flags)) {
fs/nfs/delegation.c
1537
dst->seqid = delegation->stateid.seqid;
fs/nfs/delegation.c
1559
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1564
delegation = rcu_dereference(nfsi->delegation);
fs/nfs/delegation.c
1565
if (!delegation)
fs/nfs/delegation.c
1567
spin_lock(&delegation->lock);
fs/nfs/delegation.c
1568
ret = nfs4_is_valid_delegation(delegation, flags);
fs/nfs/delegation.c
1570
nfs4_stateid_copy(dst, &delegation->stateid);
fs/nfs/delegation.c
1571
nfs_mark_delegation_referenced(delegation);
fs/nfs/delegation.c
1573
*cred = get_cred(delegation->cred);
fs/nfs/delegation.c
1575
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
1592
struct nfs_delegation *delegation;
fs/nfs/delegation.c
1596
delegation = rcu_dereference(nfsi->delegation);
fs/nfs/delegation.c
1597
if (delegation == NULL || !(delegation->type & FMODE_WRITE))
fs/nfs/delegation.c
1599
if (atomic_long_read(&nfsi->nrequests) < delegation->pagemod_limit)
fs/nfs/delegation.c
266
struct nfs_delegation *delegation;
fs/nfs/delegation.c
270
delegation = rcu_dereference(NFS_I(inode)->delegation);
fs/nfs/delegation.c
271
if (!delegation) {
fs/nfs/delegation.c
278
spin_lock(&delegation->lock);
fs/nfs/delegation.c
279
nfs4_stateid_copy(&delegation->stateid, stateid);
fs/nfs/delegation.c
280
delegation->type = type;
fs/nfs/delegation.c
281
delegation->pagemod_limit = pagemod_limit;
fs/nfs/delegation.c
282
oldcred = delegation->cred;
fs/nfs/delegation.c
283
delegation->cred = get_cred(cred);
fs/nfs/delegation.c
287
set_bit(NFS_DELEGATION_DELEGTIME, &delegation->flags);
fs/nfs/delegation.c
290
clear_bit(NFS_DELEGATION_DELEGTIME, &delegation->flags);
fs/nfs/delegation.c
292
clear_bit(NFS_DELEGATION_NEED_RECLAIM, &delegation->flags);
fs/nfs/delegation.c
293
if (test_and_clear_bit(NFS_DELEGATION_REVOKED, &delegation->flags))
fs/nfs/delegation.c
295
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
302
struct nfs_delegation *delegation,
fs/nfs/delegation.c
308
if (!test_bit(NFS_DELEGATION_REVOKED, &delegation->flags)) {
fs/nfs/delegation.c
309
spin_lock(&delegation->lock);
fs/nfs/delegation.c
310
cred = get_cred(delegation->cred);
fs/nfs/delegation.c
311
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
312
res = nfs4_proc_delegreturn(inode, cred, &delegation->stateid,
fs/nfs/delegation.c
313
delegation, issync);
fs/nfs/delegation.c
319
static struct inode *nfs_delegation_grab_inode(struct nfs_delegation *delegation)
fs/nfs/delegation.c
323
spin_lock(&delegation->lock);
fs/nfs/delegation.c
324
if (delegation->inode != NULL)
fs/nfs/delegation.c
325
inode = igrab(delegation->inode);
fs/nfs/delegation.c
326
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
333
struct nfs_delegation *delegation;
fs/nfs/delegation.c
337
delegation = rcu_dereference(nfsi->delegation);
fs/nfs/delegation.c
338
if (!delegation || !refcount_inc_not_zero(&delegation->refcount)) {
fs/nfs/delegation.c
344
spin_lock(&delegation->lock);
fs/nfs/delegation.c
345
if (delegation->inode &&
fs/nfs/delegation.c
346
!test_and_set_bit(NFS_DELEGATION_RETURNING, &delegation->flags))
fs/nfs/delegation.c
348
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
351
nfs_put_delegation(delegation);
fs/nfs/delegation.c
355
return delegation;
fs/nfs/delegation.c
360
struct nfs_delegation *delegation,
fs/nfs/delegation.c
365
trace_nfs4_detach_delegation(&nfsi->vfs_inode, delegation->type);
fs/nfs/delegation.c
367
spin_lock(&delegation->lock);
fs/nfs/delegation.c
368
if (!delegation->inode) {
fs/nfs/delegation.c
369
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
372
hlist_del_init_rcu(&delegation->hash);
fs/nfs/delegation.c
373
list_del_rcu(&delegation->super_list);
fs/nfs/delegation.c
374
delegation->inode = NULL;
fs/nfs/delegation.c
375
rcu_assign_pointer(nfsi->delegation, NULL);
fs/nfs/delegation.c
376
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
382
struct nfs_delegation *delegation,
fs/nfs/delegation.c
390
deleg_cur = rcu_dereference_protected(nfsi->delegation,
fs/nfs/delegation.c
392
if (delegation == deleg_cur)
fs/nfs/delegation.c
393
ret = nfs_detach_delegations_locked(nfsi, delegation, clp);
fs/nfs/delegation.c
399
nfs_update_delegation_cred(struct nfs_delegation *delegation,
fs/nfs/delegation.c
404
if (cred_fscmp(delegation->cred, cred) != 0) {
fs/nfs/delegation.c
405
old = xchg(&delegation->cred, get_cred(cred));
fs/nfs/delegation.c
412
struct nfs_delegation *delegation,
fs/nfs/delegation.c
415
if (nfs4_stateid_is_newer(&update->stateid, &delegation->stateid)) {
fs/nfs/delegation.c
416
delegation->stateid.seqid = update->stateid.seqid;
fs/nfs/delegation.c
418
delegation->type = update->type;
fs/nfs/delegation.c
419
delegation->pagemod_limit = update->pagemod_limit;
fs/nfs/delegation.c
420
if (test_bit(NFS_DELEGATION_REVOKED, &delegation->flags)) {
fs/nfs/delegation.c
421
delegation->change_attr = update->change_attr;
fs/nfs/delegation.c
422
nfs_update_delegation_cred(delegation, update->cred);
fs/nfs/delegation.c
424
clear_bit(NFS_DELEGATION_REVOKED, &delegation->flags);
fs/nfs/delegation.c
448
struct nfs_delegation *delegation, *old_delegation;
fs/nfs/delegation.c
45
static void __nfs_free_delegation(struct nfs_delegation *delegation)
fs/nfs/delegation.c
452
delegation = kmalloc_obj(*delegation, GFP_KERNEL_ACCOUNT);
fs/nfs/delegation.c
453
if (delegation == NULL)
fs/nfs/delegation.c
455
nfs4_stateid_copy(&delegation->stateid, stateid);
fs/nfs/delegation.c
456
refcount_set(&delegation->refcount, 1);
fs/nfs/delegation.c
457
delegation->type = type;
fs/nfs/delegation.c
458
delegation->pagemod_limit = pagemod_limit;
fs/nfs/delegation.c
459
delegation->change_attr = inode_peek_iversion_raw(inode);
fs/nfs/delegation.c
460
delegation->cred = get_cred(cred);
fs/nfs/delegation.c
461
delegation->inode = inode;
fs/nfs/delegation.c
462
delegation->flags = 1<<NFS_DELEGATION_REFERENCED;
fs/nfs/delegation.c
463
INIT_LIST_HEAD(&delegation->entry);
fs/nfs/delegation.c
467
delegation->flags |= BIT(NFS_DELEGATION_DELEGTIME);
fs/nfs/delegation.c
469
delegation->test_gen = 0;
fs/nfs/delegation.c
47
put_cred(delegation->cred);
fs/nfs/delegation.c
470
spin_lock_init(&delegation->lock);
fs/nfs/delegation.c
473
old_delegation = rcu_dereference_protected(nfsi->delegation,
fs/nfs/delegation.c
479
&delegation->stateid)) {
fs/nfs/delegation.c
48
delegation->cred = NULL;
fs/nfs/delegation.c
482
delegation);
fs/nfs/delegation.c
49
kfree_rcu(delegation, rcu);
fs/nfs/delegation.c
496
if (delegation->type == old_delegation->type ||
fs/nfs/delegation.c
497
!(delegation->type & FMODE_WRITE)) {
fs/nfs/delegation.c
498
freeme = delegation;
fs/nfs/delegation.c
499
delegation = NULL;
fs/nfs/delegation.c
526
list_add_tail_rcu(&delegation->super_list, &server->delegations);
fs/nfs/delegation.c
527
hlist_add_head_rcu(&delegation->hash,
fs/nfs/delegation.c
529
rcu_assign_pointer(nfsi->delegation, delegation);
fs/nfs/delegation.c
53
struct nfs_delegation *delegation)
fs/nfs/delegation.c
530
delegation = NULL;
fs/nfs/delegation.c
542
if (delegation != NULL)
fs/nfs/delegation.c
543
__nfs_free_delegation(delegation);
fs/nfs/delegation.c
558
struct nfs_delegation *delegation, bool issync)
fs/nfs/delegation.c
57
if (test_and_set_bit(NFS_DELEGATION_REVOKED, &delegation->flags))
fs/nfs/delegation.c
574
if (test_bit(NFS_DELEGATION_REVOKED, &delegation->flags))
fs/nfs/delegation.c
576
err = nfs_delegation_claim_opens(inode, &delegation->stateid,
fs/nfs/delegation.c
577
delegation->type);
fs/nfs/delegation.c
592
return nfs_do_return_delegation(inode, delegation, issync);
fs/nfs/delegation.c
595
if (list_empty(&delegation->entry))
fs/nfs/delegation.c
596
refcount_inc(&delegation->refcount);
fs/nfs/delegation.c
597
list_move_tail(&delegation->entry, &server->delegations_return);
fs/nfs/delegation.c
60
delegation->stateid.type = NFS4_INVALID_STATEID_TYPE;
fs/nfs/delegation.c
601
clear_bit(NFS_DELEGATION_RETURNING, &delegation->flags);
fs/nfs/delegation.c
607
struct nfs_delegation *delegation;
fs/nfs/delegation.c
612
delegation = list_first_entry_or_null(&server->delegations_return,
fs/nfs/delegation.c
614
if (!delegation) {
fs/nfs/delegation.c
618
list_del_init(&delegation->entry);
fs/nfs/delegation.c
62
if (!test_bit(NFS_DELEGATION_RETURNING, &delegation->flags))
fs/nfs/delegation.c
621
spin_lock(&delegation->lock);
fs/nfs/delegation.c
622
inode = delegation->inode;
fs/nfs/delegation.c
624
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
627
if (test_bit(NFS_DELEGATION_REVOKED, &delegation->flags) ||
fs/nfs/delegation.c
628
test_and_set_bit(NFS_DELEGATION_RETURNING, &delegation->flags)) {
fs/nfs/delegation.c
629
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
63
nfs_clear_verifier_delegated(delegation->inode);
fs/nfs/delegation.c
632
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
636
err = nfs_end_delegation_return(inode, delegation, false);
fs/nfs/delegation.c
641
nfs_put_delegation(delegation);
fs/nfs/delegation.c
66
if (!list_empty(&delegation->entry)) {
fs/nfs/delegation.c
67
list_del_init(&delegation->entry);
fs/nfs/delegation.c
698
struct nfs_delegation *delegation)
fs/nfs/delegation.c
701
if (list_empty(&delegation->entry)) {
fs/nfs/delegation.c
702
list_add_tail(&delegation->entry, &server->delegations_lru);
fs/nfs/delegation.c
703
refcount_inc(&delegation->refcount);
fs/nfs/delegation.c
73
nfs_put_delegation(delegation);
fs/nfs/delegation.c
76
void nfs_put_delegation(struct nfs_delegation *delegation)
fs/nfs/delegation.c
78
if (refcount_dec_and_test(&delegation->refcount))
fs/nfs/delegation.c
783
struct nfs_delegation *delegation;
fs/nfs/delegation.c
786
delegation = rcu_dereference(nfsi->delegation);
fs/nfs/delegation.c
787
if (delegation && !nfs_detach_delegation(nfsi, delegation, server))
fs/nfs/delegation.c
788
delegation = NULL;
fs/nfs/delegation.c
79
__nfs_free_delegation(delegation);
fs/nfs/delegation.c
791
if (!delegation)
fs/nfs/delegation.c
794
set_bit(NFS_DELEGATION_RETURNING, &delegation->flags);
fs/nfs/delegation.c
795
nfs_do_return_delegation(inode, delegation, 1);
fs/nfs/delegation.c
796
nfs_mark_delegation_revoked(server, delegation);
fs/nfs/delegation.c
797
nfs_put_delegation(delegation);
fs/nfs/delegation.c
813
struct nfs_delegation *delegation;
fs/nfs/delegation.c
815
delegation = nfs_start_delegation_return(nfsi);
fs/nfs/delegation.c
816
if (!delegation)
fs/nfs/delegation.c
823
nfs_end_delegation_return(inode, delegation, true);
fs/nfs/delegation.c
824
nfs_put_delegation(delegation);
fs/nfs/delegation.c
837
struct nfs_delegation *delegation;
fs/nfs/delegation.c
843
delegation = nfs4_get_valid_delegation(inode);
fs/nfs/delegation.c
844
if (!delegation)
fs/nfs/delegation.c
847
spin_lock(&delegation->lock);
fs/nfs/delegation.c
848
if (!delegation->inode)
fs/nfs/delegation.c
851
!test_and_set_bit(NFS_DELEGATION_RETURNING, &delegation->flags))
fs/nfs/delegation.c
854
set_bit(NFS_DELEGATION_RETURN_IF_CLOSED, &delegation->flags);
fs/nfs/delegation.c
856
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
859
nfs_end_delegation_return(inode, delegation, false);
fs/nfs/delegation.c
861
nfs_put_delegation(delegation);
fs/nfs/delegation.c
87
void nfs_mark_delegation_referenced(struct nfs_delegation *delegation)
fs/nfs/delegation.c
874
struct nfs_delegation *delegation;
fs/nfs/delegation.c
877
delegation = nfs4_get_valid_delegation(inode);
fs/nfs/delegation.c
878
if (!delegation)
fs/nfs/delegation.c
881
if (test_bit(NFS_DELEGATION_RETURN_IF_CLOSED, &delegation->flags)) {
fs/nfs/delegation.c
882
spin_lock(&delegation->lock);
fs/nfs/delegation.c
883
if (delegation->inode &&
fs/nfs/delegation.c
885
!test_and_set_bit(NFS_DELEGATION_RETURNING, &delegation->flags)) {
fs/nfs/delegation.c
886
clear_bit(NFS_DELEGATION_RETURN_IF_CLOSED, &delegation->flags);
fs/nfs/delegation.c
889
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
89
set_bit(NFS_DELEGATION_REFERENCED, &delegation->flags);
fs/nfs/delegation.c
894
nfs_end_delegation_return(inode, delegation, false);
fs/nfs/delegation.c
896
nfs_delegation_add_lru(server, delegation);
fs/nfs/delegation.c
898
nfs_put_delegation(delegation);
fs/nfs/delegation.c
909
struct nfs_delegation *delegation;
fs/nfs/delegation.c
911
delegation = nfs4_get_valid_delegation(inode);
fs/nfs/delegation.c
912
if (!delegation)
fs/nfs/delegation.c
916
!(delegation->type & FMODE_WRITE))
fs/nfs/delegation.c
918
nfs_put_delegation(delegation);
fs/nfs/delegation.c
923
struct nfs_delegation *delegation)
fs/nfs/delegation.c
928
test_bit(NFS_DELEGATION_RETURN_IF_CLOSED, &delegation->flags))
fs/nfs/delegation.c
93
struct nfs_delegation *delegation)
fs/nfs/delegation.c
930
spin_lock(&delegation->lock);
fs/nfs/delegation.c
931
inode = delegation->inode;
fs/nfs/delegation.c
935
nfs_mark_return_delegation(server, delegation);
fs/nfs/delegation.c
937
set_bit(NFS_DELEGATION_RETURN_IF_CLOSED, &delegation->flags);
fs/nfs/delegation.c
939
spin_unlock(&delegation->lock);
fs/nfs/delegation.c
944
struct nfs_delegation *delegation;
fs/nfs/delegation.c
947
list_for_each_entry_rcu(delegation, &server->delegations, super_list) {
fs/nfs/delegation.c
948
nfs_mark_return_delegation(server, delegation);
fs/nfs/delegation.c
96
if (list_empty(&delegation->entry))
fs/nfs/delegation.c
97
refcount_inc(&delegation->refcount);
fs/nfs/delegation.c
98
list_move_tail(&delegation->entry, &server->delegations_return);
fs/nfs/delegation.h
75
struct nfs_delegation *delegation, int issync);
fs/nfs/delegation.h
82
void nfs_put_delegation(struct nfs_delegation *delegation);
fs/nfs/delegation.h
83
void nfs_mark_delegation_referenced(struct nfs_delegation *delegation);
fs/nfs/inode.c
2535
nfsi->delegation = NULL;
fs/nfs/nfs40proc.c
49
if (rcu_access_pointer(NFS_I(state->inode)->delegation) != NULL)
fs/nfs/nfs4proc.c
1538
struct nfs_delegation *delegation;
fs/nfs/nfs4proc.c
1541
delegation = nfs4_get_valid_delegation(inode);
fs/nfs/nfs4proc.c
1542
if (!delegation)
fs/nfs/nfs4proc.c
1544
if ((delegation->type & fmode) != fmode)
fs/nfs/nfs4proc.c
1549
if (test_bit(NFS_DELEGATION_NEED_RECLAIM, &delegation->flags))
fs/nfs/nfs4proc.c
1554
nfs_mark_delegation_referenced(delegation);
fs/nfs/nfs4proc.c
1557
nfs4_stateid_copy(stateid, &delegation->stateid);
fs/nfs/nfs4proc.c
1565
nfs_put_delegation(delegation);
fs/nfs/nfs4proc.c
1827
const nfs4_stateid *delegation,
fs/nfs/nfs4proc.c
1856
if (delegation == NULL)
fs/nfs/nfs4proc.c
1857
delegation = &deleg_cur->stateid;
fs/nfs/nfs4proc.c
1858
else if (!nfs4_stateid_match_other(&deleg_cur->stateid, delegation))
fs/nfs/nfs4proc.c
1901
struct nfs_delegation *delegation;
fs/nfs/nfs4proc.c
1904
delegation = nfs4_get_valid_delegation(inode);
fs/nfs/nfs4proc.c
1905
if (!delegation)
fs/nfs/nfs4proc.c
1907
if ((delegation->type & fmode) != fmode)
fs/nfs/nfs4proc.c
1909
nfs_put_delegation(delegation);
fs/nfs/nfs4proc.c
1955
const struct nfs4_open_delegation *delegation)
fs/nfs/nfs4proc.c
1957
switch (delegation->open_delegation_type) {
fs/nfs/nfs4proc.c
1975
nfs_inode_reclaim_delegation(inode, cred, delegation->type,
fs/nfs/nfs4proc.c
1976
&delegation->stateid,
fs/nfs/nfs4proc.c
1977
delegation->pagemod_limit,
fs/nfs/nfs4proc.c
1978
delegation->open_delegation_type);
fs/nfs/nfs4proc.c
1981
nfs_inode_set_delegation(inode, cred, delegation->type,
fs/nfs/nfs4proc.c
1982
&delegation->stateid,
fs/nfs/nfs4proc.c
1983
delegation->pagemod_limit,
fs/nfs/nfs4proc.c
1984
delegation->open_delegation_type);
fs/nfs/nfs4proc.c
1986
if (delegation->do_recall)
fs/nfs/nfs4proc.c
1987
nfs_async_inode_return_delegation(inode, &delegation->stateid);
fs/nfs/nfs4proc.c
2014
&data->o_res.delegation);
fs/nfs/nfs4proc.c
2087
&data->o_res.delegation);
fs/nfs/nfs4proc.c
2229
struct nfs_delegation *delegation;
fs/nfs/nfs4proc.c
2239
delegation = rcu_dereference(NFS_I(state->inode)->delegation);
fs/nfs/nfs4proc.c
2240
if (delegation != NULL && test_bit(NFS_DELEGATION_NEED_RECLAIM, &delegation->flags) != 0) {
fs/nfs/nfs4proc.c
2241
switch(delegation->type) {
fs/nfs/nfs4proc.c
2244
if (test_bit(NFS_DELEGATION_DELEGTIME, &delegation->flags))
fs/nfs/nfs4proc.c
2250
if (test_bit(NFS_DELEGATION_DELEGTIME, &delegation->flags))
fs/nfs/nfs4proc.c
2359
nfs4_stateid_copy(&opendata->o_arg.u.delegation, stateid);
fs/nfs/nfs4proc.c
2865
struct nfs_delegation *delegation;
fs/nfs/nfs4proc.c
2871
delegation = rcu_dereference(NFS_I(state->inode)->delegation);
fs/nfs/nfs4proc.c
2872
if (delegation == NULL) {
fs/nfs/nfs4proc.c
2878
spin_lock(&delegation->lock);
fs/nfs/nfs4proc.c
2879
nfs4_stateid_copy(&stateid, &delegation->stateid);
fs/nfs/nfs4proc.c
2882
&delegation->flags)) {
fs/nfs/nfs4proc.c
2883
spin_unlock(&delegation->lock);
fs/nfs/nfs4proc.c
2888
if (delegation->cred)
fs/nfs/nfs4proc.c
2889
cred = get_cred(delegation->cred);
fs/nfs/nfs4proc.c
2890
spin_unlock(&delegation->lock);
fs/nfs/nfs4proc.c
3094
if (opendata->o_res.delegation.type != 0)
fs/nfs/nfs4proc.c
6814
struct nfs_delegation *delegation,
fs/nfs/nfs4proc.c
6867
if (delegation &&
fs/nfs/nfs4proc.c
6868
test_bit(NFS_DELEGATION_DELEGTIME, &delegation->flags)) {
fs/nfs/nfs4proc.c
6869
if (delegation->type & FMODE_READ) {
fs/nfs/nfs4proc.c
6873
if (delegation->type & FMODE_WRITE) {
fs/nfs/nfs4proc.c
6903
struct nfs_delegation *delegation, int issync)
fs/nfs/nfs4proc.c
6910
delegation, issync);
fs/nfs/nfs4trace.h
1001
TP_ARGS(delegation),
fs/nfs/nfs4trace.h
1010
__entry->fhandle = nfs_fhandle_hash(NFS_FH(delegation->inode));
fs/nfs/nfs4trace.h
1011
__entry->fmode = delegation->type;
fs/nfs/nfs4trace.h
1012
__entry->flags = delegation->flags;
fs/nfs/nfs4trace.h
1024
const struct nfs_delegation *delegation \
fs/nfs/nfs4trace.h
1026
TP_ARGS(delegation))
fs/nfs/nfs4trace.h
998
const struct nfs_delegation *delegation
fs/nfs/nfs4xdr.c
1552
encode_claim_delegate_cur(xdr, arg->name, &arg->u.delegation);
fs/nfs/nfs4xdr.c
1558
encode_claim_delegate_cur_fh(xdr, &arg->u.delegation);
fs/nfs/nfs4xdr.c
5333
return decode_delegation(xdr, &res->delegation);
include/linux/filelock.h
176
int fcntl_setdeleg(unsigned int fd, struct file *filp, struct delegation *deleg);
include/linux/filelock.h
177
int fcntl_getdeleg(struct file *filp, struct delegation *deleg);
include/linux/filelock.h
298
static inline int fcntl_setdeleg(unsigned int fd, struct file *filp, struct delegation *deleg)
include/linux/filelock.h
303
static inline int fcntl_getdeleg(struct file *filp, struct delegation *deleg)
include/linux/nfs_fs.h
255
struct nfs_delegation __rcu *delegation;
include/linux/nfs_xdr.h
492
nfs4_stateid delegation; /* CLAIM_DELEGATE_CUR */
include/linux/nfs_xdr.h
518
struct nfs4_open_delegation delegation;