diff options
author | Stanislav Kinsbursky <skinsbursky@parallels.com> | 2012-03-28 11:09:08 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-04-11 17:55:01 -0400 |
commit | db3a35326362624dd4d8473e676d63afa52bedcc (patch) | |
tree | 1714bb7b59c3793ce10ee6ce8f2b454c85cbc320 /fs | |
parent | d4bb527e9e6c00e6e24f3475fe65db7775ff6c63 (diff) |
nfsd: add link to owner cache detail to svc_export structure
Without info about owner cache datail it won't be able to find out, which
per-net cache detail have to be.
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfsd/export.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c index 71c5ce35a1a5..99ea4c00240c 100644 --- a/fs/nfsd/export.c +++ b/fs/nfsd/export.c | |||
@@ -525,6 +525,7 @@ static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen) | |||
525 | goto out1; | 525 | goto out1; |
526 | 526 | ||
527 | exp.ex_client = dom; | 527 | exp.ex_client = dom; |
528 | exp.cd = cd; | ||
528 | 529 | ||
529 | /* expiry */ | 530 | /* expiry */ |
530 | err = -EINVAL; | 531 | err = -EINVAL; |
@@ -672,6 +673,7 @@ static void svc_export_init(struct cache_head *cnew, struct cache_head *citem) | |||
672 | new->ex_fslocs.locations = NULL; | 673 | new->ex_fslocs.locations = NULL; |
673 | new->ex_fslocs.locations_count = 0; | 674 | new->ex_fslocs.locations_count = 0; |
674 | new->ex_fslocs.migrated = 0; | 675 | new->ex_fslocs.migrated = 0; |
676 | new->cd = item->cd; | ||
675 | } | 677 | } |
676 | 678 | ||
677 | static void export_update(struct cache_head *cnew, struct cache_head *citem) | 679 | static void export_update(struct cache_head *cnew, struct cache_head *citem) |
@@ -739,8 +741,7 @@ svc_export_lookup(struct svc_export *exp) | |||
739 | struct cache_head *ch; | 741 | struct cache_head *ch; |
740 | int hash = svc_export_hash(exp); | 742 | int hash = svc_export_hash(exp); |
741 | 743 | ||
742 | ch = sunrpc_cache_lookup(&svc_export_cache, &exp->h, | 744 | ch = sunrpc_cache_lookup(exp->cd, &exp->h, hash); |
743 | hash); | ||
744 | if (ch) | 745 | if (ch) |
745 | return container_of(ch, struct svc_export, h); | 746 | return container_of(ch, struct svc_export, h); |
746 | else | 747 | else |
@@ -753,9 +754,7 @@ svc_export_update(struct svc_export *new, struct svc_export *old) | |||
753 | struct cache_head *ch; | 754 | struct cache_head *ch; |
754 | int hash = svc_export_hash(old); | 755 | int hash = svc_export_hash(old); |
755 | 756 | ||
756 | ch = sunrpc_cache_update(&svc_export_cache, &new->h, | 757 | ch = sunrpc_cache_update(old->cd, &new->h, &old->h, hash); |
757 | &old->h, | ||
758 | hash); | ||
759 | if (ch) | 758 | if (ch) |
760 | return container_of(ch, struct svc_export, h); | 759 | return container_of(ch, struct svc_export, h); |
761 | else | 760 | else |
@@ -797,6 +796,7 @@ static svc_export *exp_get_by_name(svc_client *clp, const struct path *path, | |||
797 | 796 | ||
798 | key.ex_client = clp; | 797 | key.ex_client = clp; |
799 | key.ex_path = *path; | 798 | key.ex_path = *path; |
799 | key.cd = &svc_export_cache; | ||
800 | 800 | ||
801 | exp = svc_export_lookup(&key); | 801 | exp = svc_export_lookup(&key); |
802 | if (exp == NULL) | 802 | if (exp == NULL) |