@@ -46,7 +46,7 @@ static void expkey_put(struct kref *ref)
46
46
!test_bit (CACHE_NEGATIVE , & key -> h .flags ))
47
47
path_put (& key -> ek_path );
48
48
auth_domain_put (key -> ek_client );
49
- kfree (key );
49
+ kfree_rcu (key , ek_rcu );
50
50
}
51
51
52
52
static void expkey_request (struct cache_detail * cd ,
@@ -265,7 +265,7 @@ svc_expkey_lookup(struct cache_detail *cd, struct svc_expkey *item)
265
265
struct cache_head * ch ;
266
266
int hash = svc_expkey_hash (item );
267
267
268
- ch = sunrpc_cache_lookup (cd , & item -> h , hash );
268
+ ch = sunrpc_cache_lookup_rcu (cd , & item -> h , hash );
269
269
if (ch )
270
270
return container_of (ch , struct svc_expkey , h );
271
271
else
@@ -314,7 +314,7 @@ static void svc_export_put(struct kref *ref)
314
314
auth_domain_put (exp -> ex_client );
315
315
nfsd4_fslocs_free (& exp -> ex_fslocs );
316
316
kfree (exp -> ex_uuid );
317
- kfree (exp );
317
+ kfree_rcu (exp , ex_rcu );
318
318
}
319
319
320
320
static void svc_export_request (struct cache_detail * cd ,
@@ -780,7 +780,7 @@ svc_export_lookup(struct svc_export *exp)
780
780
struct cache_head * ch ;
781
781
int hash = svc_export_hash (exp );
782
782
783
- ch = sunrpc_cache_lookup (exp -> cd , & exp -> h , hash );
783
+ ch = sunrpc_cache_lookup_rcu (exp -> cd , & exp -> h , hash );
784
784
if (ch )
785
785
return container_of (ch , struct svc_export , h );
786
786
else
@@ -1216,9 +1216,9 @@ static int e_show(struct seq_file *m, void *p)
1216
1216
}
1217
1217
1218
1218
const struct seq_operations nfs_exports_op = {
1219
- .start = cache_seq_start ,
1220
- .next = cache_seq_next ,
1221
- .stop = cache_seq_stop ,
1219
+ .start = cache_seq_start_rcu ,
1220
+ .next = cache_seq_next_rcu ,
1221
+ .stop = cache_seq_stop_rcu ,
1222
1222
.show = e_show ,
1223
1223
};
1224
1224
0 commit comments