Skip to content

Commit 2ef61e0

Browse files
amschuma-ntapTrond Myklebust
authored andcommitted
NFS: Remove the nfs4_label from the nfs4_getattr_res
Signed-off-by: Anna Schumaker <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
1 parent 76baa2b commit 2ef61e0

File tree

11 files changed

+28
-56
lines changed

11 files changed

+28
-56
lines changed

fs/nfs/client.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1048,7 +1048,7 @@ struct nfs_server *nfs_create_server(struct fs_context *fc)
10481048

10491049
if (!(fattr->valid & NFS_ATTR_FATTR)) {
10501050
error = ctx->nfs_mod->rpc_ops->getattr(server, ctx->mntfh,
1051-
fattr, NULL, NULL);
1051+
fattr, NULL);
10521052
if (error < 0) {
10531053
dprintk("nfs_create_server: getattr error = %d\n", -error);
10541054
goto error;

fs/nfs/dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2056,7 +2056,7 @@ nfs_add_or_obtain(struct dentry *dentry, struct nfs_fh *fhandle,
20562056
if (!(fattr->valid & NFS_ATTR_FATTR)) {
20572057
struct nfs_server *server = NFS_SB(dentry->d_sb);
20582058
error = server->nfs_client->rpc_ops->getattr(server, fhandle,
2059-
fattr, NULL, NULL);
2059+
fattr, NULL);
20602060
if (error < 0)
20612061
goto out_error;
20622062
}

fs/nfs/export.c

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ static struct dentry *
6464
nfs_fh_to_dentry(struct super_block *sb, struct fid *fid,
6565
int fh_len, int fh_type)
6666
{
67-
struct nfs4_label *label = NULL;
6867
struct nfs_fattr *fattr = NULL;
6968
struct nfs_fh *server_fh = nfs_exp_embedfh(fid->raw);
7069
size_t fh_size = offsetof(struct nfs_fh, data) + server_fh->size;
@@ -79,7 +78,7 @@ nfs_fh_to_dentry(struct super_block *sb, struct fid *fid,
7978
if (fh_len < len || fh_type != len)
8079
return NULL;
8180

82-
fattr = nfs_alloc_fattr();
81+
fattr = nfs_alloc_fattr_with_label(NFS_SB(sb));
8382
if (fattr == NULL) {
8483
dentry = ERR_PTR(-ENOMEM);
8584
goto out;
@@ -95,28 +94,19 @@ nfs_fh_to_dentry(struct super_block *sb, struct fid *fid,
9594
if (inode)
9695
goto out_found;
9796

98-
label = nfs4_label_alloc(NFS_SB(sb), GFP_KERNEL);
99-
if (IS_ERR(label)) {
100-
dentry = ERR_CAST(label);
101-
goto out_free_fattr;
102-
}
103-
10497
rpc_ops = NFS_SB(sb)->nfs_client->rpc_ops;
105-
ret = rpc_ops->getattr(NFS_SB(sb), server_fh, fattr, label, NULL);
98+
ret = rpc_ops->getattr(NFS_SB(sb), server_fh, fattr, NULL);
10699
if (ret) {
107100
dprintk("%s: getattr failed %d\n", __func__, ret);
108101
trace_nfs_fh_to_dentry(sb, server_fh, fattr->fileid, ret);
109102
dentry = ERR_PTR(ret);
110-
goto out_free_label;
103+
goto out_free_fattr;
111104
}
112105

113-
inode = nfs_fhget(sb, server_fh, fattr, label);
106+
inode = nfs_fhget(sb, server_fh, fattr, fattr->label);
114107

115108
out_found:
116109
dentry = d_obtain_alias(inode);
117-
118-
out_free_label:
119-
nfs4_label_free(label);
120110
out_free_fattr:
121111
nfs_free_fattr(fattr);
122112
out:

fs/nfs/inode.c

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,7 +1194,6 @@ int
11941194
__nfs_revalidate_inode(struct nfs_server *server, struct inode *inode)
11951195
{
11961196
int status = -ESTALE;
1197-
struct nfs4_label *label = NULL;
11981197
struct nfs_fattr *fattr = NULL;
11991198
struct nfs_inode *nfsi = NFS_I(inode);
12001199

@@ -1216,20 +1215,13 @@ __nfs_revalidate_inode(struct nfs_server *server, struct inode *inode)
12161215
}
12171216

12181217
status = -ENOMEM;
1219-
fattr = nfs_alloc_fattr();
1218+
fattr = nfs_alloc_fattr_with_label(NFS_SERVER(inode));
12201219
if (fattr == NULL)
12211220
goto out;
12221221

12231222
nfs_inc_stats(inode, NFSIOS_INODEREVALIDATE);
12241223

1225-
label = nfs4_label_alloc(NFS_SERVER(inode), GFP_KERNEL);
1226-
if (IS_ERR(label)) {
1227-
status = PTR_ERR(label);
1228-
goto out;
1229-
}
1230-
1231-
status = NFS_PROTO(inode)->getattr(server, NFS_FH(inode), fattr,
1232-
label, inode);
1224+
status = NFS_PROTO(inode)->getattr(server, NFS_FH(inode), fattr, inode);
12331225
if (status != 0) {
12341226
dfprintk(PAGECACHE, "nfs_revalidate_inode: (%s/%Lu) getattr failed, error=%d\n",
12351227
inode->i_sb->s_id,
@@ -1246,28 +1238,26 @@ __nfs_revalidate_inode(struct nfs_server *server, struct inode *inode)
12461238
else
12471239
nfs_zap_caches(inode);
12481240
}
1249-
goto err_out;
1241+
goto out;
12501242
}
12511243

12521244
status = nfs_refresh_inode(inode, fattr);
12531245
if (status) {
12541246
dfprintk(PAGECACHE, "nfs_revalidate_inode: (%s/%Lu) refresh failed, error=%d\n",
12551247
inode->i_sb->s_id,
12561248
(unsigned long long)NFS_FILEID(inode), status);
1257-
goto err_out;
1249+
goto out;
12581250
}
12591251

12601252
if (nfsi->cache_validity & NFS_INO_INVALID_ACL)
12611253
nfs_zap_acl_cache(inode);
12621254

1263-
nfs_setsecurity(inode, fattr, label);
1255+
nfs_setsecurity(inode, fattr, fattr->label);
12641256

12651257
dfprintk(PAGECACHE, "NFS: (%s/%Lu) revalidation complete\n",
12661258
inode->i_sb->s_id,
12671259
(unsigned long long)NFS_FILEID(inode));
12681260

1269-
err_out:
1270-
nfs4_label_free(label);
12711261
out:
12721262
nfs_free_fattr(fattr);
12731263
trace_nfs_revalidate_inode_exit(inode, status);

fs/nfs/nfs3proc.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ nfs3_proc_get_root(struct nfs_server *server, struct nfs_fh *fhandle,
100100
*/
101101
static int
102102
nfs3_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
103-
struct nfs_fattr *fattr, struct nfs4_label *label,
104-
struct inode *inode)
103+
struct nfs_fattr *fattr, struct inode *inode)
105104
{
106105
struct rpc_message msg = {
107106
.rpc_proc = &nfs3_procedures[NFS3PROC_GETATTR],

fs/nfs/nfs4_fs.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,7 @@ extern int nfs4_set_rw_stateid(nfs4_stateid *stateid,
316316
const struct nfs_lock_context *l_ctx,
317317
fmode_t fmode);
318318
extern int nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
319-
struct nfs_fattr *fattr, struct nfs4_label *label,
320-
struct inode *inode);
319+
struct nfs_fattr *fattr, struct inode *inode);
321320
extern int update_open_stateid(struct nfs4_state *state,
322321
const nfs4_stateid *open_stateid,
323322
const nfs4_stateid *deleg_stateid,

fs/nfs/nfs4file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ static struct file *__nfs42_ssc_open(struct vfsmount *ss_mnt,
331331
if (!fattr)
332332
return ERR_PTR(-ENOMEM);
333333

334-
status = nfs4_proc_getattr(server, src_fh, fattr, NULL, NULL);
334+
status = nfs4_proc_getattr(server, src_fh, fattr, NULL);
335335
if (status < 0) {
336336
res = ERR_PTR(status);
337337
goto out;

fs/nfs/nfs4proc.c

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ struct nfs4_opendata;
9393
static int _nfs4_recover_proc_open(struct nfs4_opendata *data);
9494
static int nfs4_do_fsinfo(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
9595
static void nfs_fixup_referral_attributes(struct nfs_fattr *fattr);
96-
static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fattr *fattr, struct nfs4_label *label, struct inode *inode);
96+
static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
97+
struct nfs_fattr *fattr, struct inode *inode);
9798
static int nfs4_do_setattr(struct inode *inode, const struct cred *cred,
9899
struct nfs_fattr *fattr, struct iattr *sattr,
99100
struct nfs_open_context *ctx, struct nfs4_label *ilabel,
@@ -2707,8 +2708,7 @@ static int _nfs4_proc_open(struct nfs4_opendata *data,
27072708
}
27082709
if (!(o_res->f_attr->valid & NFS_ATTR_FATTR)) {
27092710
nfs4_sequence_free_slot(&o_res->seq_res);
2710-
nfs4_proc_getattr(server, &o_res->fh, o_res->f_attr,
2711-
o_res->f_attr->label, NULL);
2711+
nfs4_proc_getattr(server, &o_res->fh, o_res->f_attr, NULL);
27122712
}
27132713
return 0;
27142714
}
@@ -4090,15 +4090,14 @@ static int nfs4_proc_get_root(struct nfs_server *server, struct nfs_fh *mntfh,
40904090
{
40914091
int error;
40924092
struct nfs_fattr *fattr = info->fattr;
4093-
struct nfs4_label *label = fattr->label;
40944093

40954094
error = nfs4_server_capabilities(server, mntfh);
40964095
if (error < 0) {
40974096
dprintk("nfs4_get_root: getcaps error = %d\n", -error);
40984097
return error;
40994098
}
41004099

4101-
error = nfs4_proc_getattr(server, mntfh, fattr, label, NULL);
4100+
error = nfs4_proc_getattr(server, mntfh, fattr, NULL);
41024101
if (error < 0) {
41034102
dprintk("nfs4_get_root: getattr error = %d\n", -error);
41044103
goto out;
@@ -4161,8 +4160,7 @@ static int nfs4_get_referral(struct rpc_clnt *client, struct inode *dir,
41614160
}
41624161

41634162
static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
4164-
struct nfs_fattr *fattr, struct nfs4_label *label,
4165-
struct inode *inode)
4163+
struct nfs_fattr *fattr, struct inode *inode)
41664164
{
41674165
__u32 bitmask[NFS4_BITMASK_SZ];
41684166
struct nfs4_getattr_arg args = {
@@ -4171,7 +4169,6 @@ static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
41714169
};
41724170
struct nfs4_getattr_res res = {
41734171
.fattr = fattr,
4174-
.label = label,
41754172
.server = server,
41764173
};
41774174
struct rpc_message msg = {
@@ -4188,23 +4185,22 @@ static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
41884185
if (inode && (server->flags & NFS_MOUNT_SOFTREVAL))
41894186
task_flags |= RPC_TASK_TIMEOUT;
41904187

4191-
nfs4_bitmap_copy_adjust(bitmask, nfs4_bitmask(server, label), inode, 0);
4188+
nfs4_bitmap_copy_adjust(bitmask, nfs4_bitmask(server, fattr->label), inode, 0);
41924189
nfs_fattr_init(fattr);
41934190
nfs4_init_sequence(&args.seq_args, &res.seq_res, 0, 0);
41944191
return nfs4_do_call_sync(server->client, server, &msg,
41954192
&args.seq_args, &res.seq_res, task_flags);
41964193
}
41974194

41984195
int nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
4199-
struct nfs_fattr *fattr, struct nfs4_label *label,
4200-
struct inode *inode)
4196+
struct nfs_fattr *fattr, struct inode *inode)
42014197
{
42024198
struct nfs4_exception exception = {
42034199
.interruptible = true,
42044200
};
42054201
int err;
42064202
do {
4207-
err = _nfs4_proc_getattr(server, fhandle, fattr, label, inode);
4203+
err = _nfs4_proc_getattr(server, fhandle, fattr, inode);
42084204
trace_nfs4_getattr(server, fhandle, fattr, err);
42094205
err = nfs4_handle_exception(server, err,
42104206
&exception);
@@ -5972,17 +5968,18 @@ static int _nfs4_get_security_label(struct inode *inode, void *buf,
59725968
size_t buflen)
59735969
{
59745970
struct nfs_server *server = NFS_SERVER(inode);
5975-
struct nfs_fattr fattr;
59765971
struct nfs4_label label = {0, 0, buflen, buf};
59775972

59785973
u32 bitmask[3] = { 0, 0, FATTR4_WORD2_SECURITY_LABEL };
5974+
struct nfs_fattr fattr = {
5975+
.label = &label,
5976+
};
59795977
struct nfs4_getattr_arg arg = {
59805978
.fh = NFS_FH(inode),
59815979
.bitmask = bitmask,
59825980
};
59835981
struct nfs4_getattr_res res = {
59845982
.fattr = &fattr,
5985-
.label = &label,
59865983
.server = server,
59875984
};
59885985
struct rpc_message msg = {

fs/nfs/nfs4xdr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6386,7 +6386,7 @@ static int nfs4_xdr_dec_getattr(struct rpc_rqst *rqstp, struct xdr_stream *xdr,
63866386
status = decode_putfh(xdr);
63876387
if (status)
63886388
goto out;
6389-
status = decode_getfattr_label(xdr, res->fattr, res->label, res->server);
6389+
status = decode_getfattr_label(xdr, res->fattr, res->fattr->label, res->server);
63906390
out:
63916391
return status;
63926392
}

fs/nfs/proc.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ nfs_proc_get_root(struct nfs_server *server, struct nfs_fh *fhandle,
100100
*/
101101
static int
102102
nfs_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle,
103-
struct nfs_fattr *fattr, struct nfs4_label *label,
104-
struct inode *inode)
103+
struct nfs_fattr *fattr, struct inode *inode)
105104
{
106105
struct rpc_message msg = {
107106
.rpc_proc = &nfs_procedures[NFSPROC_GETATTR],

0 commit comments

Comments
 (0)