nfsd4: rename cr_linkname->cr_data

The name of a link is currently stored in cr_name and cr_namelen, and
the content in cr_linkname and cr_linklen.  That's confusing.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
J. Bruce Fields 2014-06-24 15:06:41 -04:00
parent 52ee04330f
commit 7fb84306f5
3 changed files with 12 additions and 13 deletions

View File

@ -623,7 +623,7 @@ nfsd4_create(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
case NF4LNK:
status = nfsd_symlink(rqstp, &cstate->current_fh,
create->cr_name, create->cr_namelen,
create->cr_linkname,
create->cr_data,
&resfh, &create->cr_iattr);
break;

View File

@ -598,20 +598,19 @@ nfsd4_decode_create(struct nfsd4_compoundargs *argp, struct nfsd4_create *create
switch (create->cr_type) {
case NF4LNK:
READ_BUF(4);
create->cr_linklen = be32_to_cpup(p++);
READ_BUF(create->cr_linklen);
create->cr_datalen = be32_to_cpup(p++);
READ_BUF(create->cr_datalen);
/*
* The VFS will want a null-terminated string, and
* null-terminating in place isn't safe since this might
* end on a page boundary:
*/
create->cr_linkname =
kmalloc(create->cr_linklen + 1, GFP_KERNEL);
if (!create->cr_linkname)
create->cr_data = kmalloc(create->cr_datalen + 1, GFP_KERNEL);
if (!create->cr_data)
return nfserr_jukebox;
memcpy(create->cr_linkname, p, create->cr_linklen);
create->cr_linkname[create->cr_linklen] = '\0';
defer_free(argp, kfree, create->cr_linkname);
memcpy(create->cr_data, p, create->cr_datalen);
create->cr_data[create->cr_datalen] = '\0';
defer_free(argp, kfree, create->cr_data);
break;
case NF4BLK:
case NF4CHR:

View File

@ -107,8 +107,8 @@ struct nfsd4_create {
u32 cr_type; /* request */
union { /* request */
struct {
u32 namelen;
char *name;
u32 datalen;
char *data;
} link; /* NF4LNK */
struct {
u32 specdata1;
@ -121,8 +121,8 @@ struct nfsd4_create {
struct nfs4_acl *cr_acl;
struct xdr_netobj cr_label;
};
#define cr_linklen u.link.namelen
#define cr_linkname u.link.name
#define cr_datalen u.link.datalen
#define cr_data u.link.data
#define cr_specdata1 u.dev.specdata1
#define cr_specdata2 u.dev.specdata2