diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/lockd/host.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index 960911c4a11c..de0ffb6106c4 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c | |||
@@ -465,7 +465,7 @@ __nsm_find(const struct sockaddr_in *sin, | |||
465 | int create) | 465 | int create) |
466 | { | 466 | { |
467 | struct nsm_handle *nsm = NULL; | 467 | struct nsm_handle *nsm = NULL; |
468 | struct list_head *pos; | 468 | struct nsm_handle *pos; |
469 | 469 | ||
470 | if (!sin) | 470 | if (!sin) |
471 | return NULL; | 471 | return NULL; |
@@ -480,16 +480,16 @@ __nsm_find(const struct sockaddr_in *sin, | |||
480 | } | 480 | } |
481 | 481 | ||
482 | mutex_lock(&nsm_mutex); | 482 | mutex_lock(&nsm_mutex); |
483 | list_for_each(pos, &nsm_handles) { | 483 | list_for_each_entry(pos, &nsm_handles, sm_link) { |
484 | nsm = list_entry(pos, struct nsm_handle, sm_link); | ||
485 | 484 | ||
486 | if (hostname && nsm_use_hostnames) { | 485 | if (hostname && nsm_use_hostnames) { |
487 | if (strlen(nsm->sm_name) != hostname_len | 486 | if (strlen(pos->sm_name) != hostname_len |
488 | || memcmp(nsm->sm_name, hostname, hostname_len)) | 487 | || memcmp(pos->sm_name, hostname, hostname_len)) |
489 | continue; | 488 | continue; |
490 | } else if (!nlm_cmp_addr(&nsm->sm_addr, sin)) | 489 | } else if (!nlm_cmp_addr(&pos->sm_addr, sin)) |
491 | continue; | 490 | continue; |
492 | atomic_inc(&nsm->sm_count); | 491 | atomic_inc(&pos->sm_count); |
492 | nsm = pos; | ||
493 | goto out; | 493 | goto out; |
494 | } | 494 | } |
495 | 495 | ||
@@ -499,15 +499,15 @@ __nsm_find(const struct sockaddr_in *sin, | |||
499 | } | 499 | } |
500 | 500 | ||
501 | nsm = kzalloc(sizeof(*nsm) + hostname_len + 1, GFP_KERNEL); | 501 | nsm = kzalloc(sizeof(*nsm) + hostname_len + 1, GFP_KERNEL); |
502 | if (nsm != NULL) { | 502 | if (nsm == NULL) |
503 | nsm->sm_addr = *sin; | 503 | goto out; |
504 | nsm->sm_name = (char *) (nsm + 1); | 504 | nsm->sm_addr = *sin; |
505 | memcpy(nsm->sm_name, hostname, hostname_len); | 505 | nsm->sm_name = (char *) (nsm + 1); |
506 | nsm->sm_name[hostname_len] = '\0'; | 506 | memcpy(nsm->sm_name, hostname, hostname_len); |
507 | atomic_set(&nsm->sm_count, 1); | 507 | nsm->sm_name[hostname_len] = '\0'; |
508 | 508 | atomic_set(&nsm->sm_count, 1); | |
509 | list_add(&nsm->sm_link, &nsm_handles); | 509 | |
510 | } | 510 | list_add(&nsm->sm_link, &nsm_handles); |
511 | 511 | ||
512 | out: | 512 | out: |
513 | mutex_unlock(&nsm_mutex); | 513 | mutex_unlock(&nsm_mutex); |