diff options
author | Neil Brown <neilb@suse.de> | 2006-10-04 05:16:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-04 10:55:19 -0400 |
commit | 89e63ef609fb0064a47281e31e38010159c32d57 (patch) | |
tree | fcc1953b65d29caabbb4caf25498f4f160797a70 /fs/lockd/host.c | |
parent | bc5fea4299b8bda5f73c6f79dc35d388caf8bced (diff) |
[PATCH] Convert lockd to use the newer mutex instead of the older semaphore
Both the (recently introduces) nsm_sema and the older f_sema are converted
over.
Cc: Olaf Kirch <okir@suse.de>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/lockd/host.c')
-rw-r--r-- | fs/lockd/host.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index a1423c66df04..0257a5594524 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c | |||
@@ -436,7 +436,7 @@ nlm_gc_hosts(void) | |||
436 | * Manage NSM handles | 436 | * Manage NSM handles |
437 | */ | 437 | */ |
438 | static LIST_HEAD(nsm_handles); | 438 | static LIST_HEAD(nsm_handles); |
439 | static DECLARE_MUTEX(nsm_sema); | 439 | static DEFINE_MUTEX(nsm_mutex); |
440 | 440 | ||
441 | static struct nsm_handle * | 441 | static struct nsm_handle * |
442 | __nsm_find(const struct sockaddr_in *sin, | 442 | __nsm_find(const struct sockaddr_in *sin, |
@@ -458,7 +458,7 @@ __nsm_find(const struct sockaddr_in *sin, | |||
458 | return NULL; | 458 | return NULL; |
459 | } | 459 | } |
460 | 460 | ||
461 | down(&nsm_sema); | 461 | mutex_lock(&nsm_mutex); |
462 | list_for_each(pos, &nsm_handles) { | 462 | list_for_each(pos, &nsm_handles) { |
463 | nsm = list_entry(pos, struct nsm_handle, sm_link); | 463 | nsm = list_entry(pos, struct nsm_handle, sm_link); |
464 | 464 | ||
@@ -488,7 +488,8 @@ __nsm_find(const struct sockaddr_in *sin, | |||
488 | list_add(&nsm->sm_link, &nsm_handles); | 488 | list_add(&nsm->sm_link, &nsm_handles); |
489 | } | 489 | } |
490 | 490 | ||
491 | out: up(&nsm_sema); | 491 | out: |
492 | mutex_unlock(&nsm_mutex); | ||
492 | return nsm; | 493 | return nsm; |
493 | } | 494 | } |
494 | 495 | ||
@@ -507,11 +508,11 @@ nsm_release(struct nsm_handle *nsm) | |||
507 | if (!nsm) | 508 | if (!nsm) |
508 | return; | 509 | return; |
509 | if (atomic_dec_and_test(&nsm->sm_count)) { | 510 | if (atomic_dec_and_test(&nsm->sm_count)) { |
510 | down(&nsm_sema); | 511 | mutex_lock(&nsm_mutex); |
511 | if (atomic_read(&nsm->sm_count) == 0) { | 512 | if (atomic_read(&nsm->sm_count) == 0) { |
512 | list_del(&nsm->sm_link); | 513 | list_del(&nsm->sm_link); |
513 | kfree(nsm); | 514 | kfree(nsm); |
514 | } | 515 | } |
515 | up(&nsm_sema); | 516 | mutex_unlock(&nsm_mutex); |
516 | } | 517 | } |
517 | } | 518 | } |