git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
fs
/
lockd
/
svcshare.c
diff --git
a/fs/lockd/svcshare.c
b/fs/lockd/svcshare.c
index
4943fb7
..
068886d
100644
(file)
--- a/
fs/lockd/svcshare.c
+++ b/
fs/lockd/svcshare.c
@@
-23,7
+23,7
@@
nlm_cmp_owner(struct nlm_share *share, struct xdr_netobj *oh)
&& !memcmp(share->s_owner.data, oh->data, oh->len);
}
&& !memcmp(share->s_owner.data, oh->data, oh->len);
}
-
u
32
+
__be
32
nlmsvc_share_file(struct nlm_host *host, struct nlm_file *file,
struct nlm_args *argp)
{
nlmsvc_share_file(struct nlm_host *host, struct nlm_file *file,
struct nlm_args *argp)
{
@@
-39,7
+39,7
@@
nlmsvc_share_file(struct nlm_host *host, struct nlm_file *file,
return nlm_lck_denied;
}
return nlm_lck_denied;
}
- share =
(struct nlm_share *)
kmalloc(sizeof(*share) + oh->len,
+ share = kmalloc(sizeof(*share) + oh->len,
GFP_KERNEL);
if (share == NULL)
return nlm_lck_denied_nolocks;
GFP_KERNEL);
if (share == NULL)
return nlm_lck_denied_nolocks;
@@
-64,7
+64,7
@@
update:
/*
* Delete a share.
*/
/*
* Delete a share.
*/
-
u
32
+
__be
32
nlmsvc_unshare_file(struct nlm_host *host, struct nlm_file *file,
struct nlm_args *argp)
{
nlmsvc_unshare_file(struct nlm_host *host, struct nlm_file *file,
struct nlm_args *argp)
{
@@
-85,27
+85,21
@@
nlmsvc_unshare_file(struct nlm_host *host, struct nlm_file *file,
}
/*
}
/*
- * Traverse all shares for a given file
(and host).
- *
NLM_ACT_CHECK is handled by nlmsvc_inspect_file.
+ * Traverse all shares for a given file
, and delete
+ *
those owned by the given (type of) host
*/
*/
-int
-
nlmsvc_traverse_shares(struct nlm_host *host, struct nlm_file *file, int action
)
+void nlmsvc_traverse_shares(struct nlm_host *host, struct nlm_file *file,
+
nlm_host_match_fn_t match
)
{
struct nlm_share *share, **shpp;
shpp = &file->f_shares;
while ((share = *shpp) != NULL) {
{
struct nlm_share *share, **shpp;
shpp = &file->f_shares;
while ((share = *shpp) != NULL) {
- if (action == NLM_ACT_MARK)
- share->s_host->h_inuse = 1;
- else if (action == NLM_ACT_UNLOCK) {
- if (host == NULL || host == share->s_host) {
- *shpp = share->s_next;
- kfree(share);
- continue;
- }
+ if (match(share->s_host, host)) {
+ *shpp = share->s_next;
+ kfree(share);
+ continue;
}
shpp = &share->s_next;
}
}
shpp = &share->s_next;
}
-
- return 0;
}
}