Do as the NLM client: allocate and track a struct nlm_lockowner for use as the fl_owner for locks created by the NLM sever. This allows us to keep the svid within this structure for matching locks, and will allow us to track the pid of lockd in a future patch. It should also allow easier reference of the nlm_host in conflicting locks, and simplify lock hashing and comparison.
Showing the changes to include/linux (1 of 7 files). Show all
Unified · Split
| @@ -282,6 +282,7 @@ void nlmsvc_traverse_blocks(struct nlm_host *, struct nlm_file *, · 281 unmodified lines | |||
| 282 | nlm_host_match_fn_t match); | 282 | nlm_host_match_fn_t match); |
| 283 | void nlmsvc_grant_reply(struct nlm_cookie *, __be32); | 283 | void nlmsvc_grant_reply(struct nlm_cookie *, __be32); |
| 284 | void nlmsvc_release_call(struct nlm_rqst *); | 284 | void nlmsvc_release_call(struct nlm_rqst *); |
| 285 | void nlmsvc_locks_init_private(struct file_lock *, struct nlm_host *, pid_t); | ||
| 285 | 286 | ||
| 286 | /* | 287 | /* |
| 287 | * File handling for the server personality | 288 | * File handling for the server personality |
| @@ -289,6 +290,7 @@ void nlmsvc_release_call(struct nlm_rqst *); · 1 unmodified line | |||
| 289 | __be32 nlm_lookup_file(struct svc_rqst *, struct nlm_file **, | 290 | __be32 nlm_lookup_file(struct svc_rqst *, struct nlm_file **, |
| 290 | struct nfs_fh *); | 291 | struct nfs_fh *); |
| 291 | void nlm_release_file(struct nlm_file *); | 292 | void nlm_release_file(struct nlm_file *); |
| 293 | void nlmsvc_release_lockowner(struct nlm_lock *); | ||
| 292 | void nlmsvc_mark_resources(struct net *); | 294 | void nlmsvc_mark_resources(struct net *); |
| 293 | void nlmsvc_free_host_resources(struct nlm_host *); | 295 | void nlmsvc_free_host_resources(struct nlm_host *); |
| 294 | void nlmsvc_invalidate_all(void); | 296 | void nlmsvc_invalidate_all(void); |