Skip to content

Commit

Permalink
nfsd: add link to owner cache detail to svc_export structure
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stanislav Kinsbursky authored and J. Bruce Fields committed Apr 11, 2012
1 parent d4bb527 commit db3a353
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
10 changes: 5 additions & 5 deletions fs/nfsd/export.c
Original file line number Diff line number Diff line change
Expand Up @@ -525,6 +525,7 @@ static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen)
goto out1;

exp.ex_client = dom;
exp.cd = cd;

/* expiry */
err = -EINVAL;
Expand Down Expand Up @@ -672,6 +673,7 @@ static void svc_export_init(struct cache_head *cnew, struct cache_head *citem)
new->ex_fslocs.locations = NULL;
new->ex_fslocs.locations_count = 0;
new->ex_fslocs.migrated = 0;
new->cd = item->cd;
}

static void export_update(struct cache_head *cnew, struct cache_head *citem)
Expand Down Expand Up @@ -739,8 +741,7 @@ svc_export_lookup(struct svc_export *exp)
struct cache_head *ch;
int hash = svc_export_hash(exp);

ch = sunrpc_cache_lookup(&svc_export_cache, &exp->h,
hash);
ch = sunrpc_cache_lookup(exp->cd, &exp->h, hash);
if (ch)
return container_of(ch, struct svc_export, h);
else
Expand All @@ -753,9 +754,7 @@ svc_export_update(struct svc_export *new, struct svc_export *old)
struct cache_head *ch;
int hash = svc_export_hash(old);

ch = sunrpc_cache_update(&svc_export_cache, &new->h,
&old->h,
hash);
ch = sunrpc_cache_update(old->cd, &new->h, &old->h, hash);
if (ch)
return container_of(ch, struct svc_export, h);
else
Expand Down Expand Up @@ -797,6 +796,7 @@ static svc_export *exp_get_by_name(svc_client *clp, const struct path *path,

key.ex_client = clp;
key.ex_path = *path;
key.cd = &svc_export_cache;

exp = svc_export_lookup(&key);
if (exp == NULL)
Expand Down
1 change: 1 addition & 0 deletions include/linux/nfsd/export.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ struct svc_export {
struct nfsd4_fs_locations ex_fslocs;
int ex_nflavors;
struct exp_flavor_info ex_flavors[MAX_SECINFO_LIST];
struct cache_detail *cd;
};

/* an "export key" (expkey) maps a filehandlefragement to an
Expand Down

0 comments on commit db3a353

Please sign in to comment.