nfs4.1: Add SP4_MACH_CRED secinfo support
SECINFO and SECINFO_NONAME can use the machine credential. Signed-off-by: Weston Andros Adamson <dros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
fa940720ce
commit
8b5bee2e1b
|
@ -5998,6 +5998,10 @@ static int _nfs4_proc_secinfo(struct inode *dir, const struct qstr *name, struct
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintk("NFS call secinfo %s\n", name->name);
|
dprintk("NFS call secinfo %s\n", name->name);
|
||||||
|
|
||||||
|
nfs4_state_protect(NFS_SERVER(dir)->nfs_client,
|
||||||
|
NFS_SP4_MACH_CRED_SECINFO, &clnt, &msg);
|
||||||
|
|
||||||
status = nfs4_call_sync(clnt, NFS_SERVER(dir), &msg, &args.seq_args,
|
status = nfs4_call_sync(clnt, NFS_SERVER(dir), &msg, &args.seq_args,
|
||||||
&res.seq_res, 0);
|
&res.seq_res, 0);
|
||||||
dprintk("NFS reply secinfo: %d\n", status);
|
dprintk("NFS reply secinfo: %d\n", status);
|
||||||
|
@ -6137,7 +6141,9 @@ static const struct nfs41_state_protection nfs4_sp4_mach_cred_request = {
|
||||||
},
|
},
|
||||||
.allow.u.words = {
|
.allow.u.words = {
|
||||||
[0] = 1 << (OP_CLOSE) |
|
[0] = 1 << (OP_CLOSE) |
|
||||||
1 << (OP_LOCKU)
|
1 << (OP_LOCKU),
|
||||||
|
[1] = 1 << (OP_SECINFO - 32) |
|
||||||
|
1 << (OP_SECINFO_NO_NAME - 32)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6203,6 +6209,12 @@ static int nfs4_sp4_select_mode(struct nfs_client *clp,
|
||||||
dfprintk(MOUNT, " cleanup mode enabled\n");
|
dfprintk(MOUNT, " cleanup mode enabled\n");
|
||||||
set_bit(NFS_SP4_MACH_CRED_CLEANUP, &clp->cl_sp4_flags);
|
set_bit(NFS_SP4_MACH_CRED_CLEANUP, &clp->cl_sp4_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (test_bit(OP_SECINFO, sp->allow.u.longs) &&
|
||||||
|
test_bit(OP_SECINFO_NO_NAME, sp->allow.u.longs)) {
|
||||||
|
dfprintk(MOUNT, " secinfo mode enabled\n");
|
||||||
|
set_bit(NFS_SP4_MACH_CRED_SECINFO, &clp->cl_sp4_flags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -95,6 +95,7 @@ struct nfs_client {
|
||||||
#define NFS_SP4_MACH_CRED_MINIMAL 1 /* Minimal sp4_mach_cred - state ops
|
#define NFS_SP4_MACH_CRED_MINIMAL 1 /* Minimal sp4_mach_cred - state ops
|
||||||
* must use machine cred */
|
* must use machine cred */
|
||||||
#define NFS_SP4_MACH_CRED_CLEANUP 2 /* CLOSE and LOCKU */
|
#define NFS_SP4_MACH_CRED_CLEANUP 2 /* CLOSE and LOCKU */
|
||||||
|
#define NFS_SP4_MACH_CRED_SECINFO 3 /* SECINFO and SECINFO_NO_NAME */
|
||||||
#endif /* CONFIG_NFS_V4 */
|
#endif /* CONFIG_NFS_V4 */
|
||||||
|
|
||||||
#ifdef CONFIG_NFS_FSCACHE
|
#ifdef CONFIG_NFS_FSCACHE
|
||||||
|
|
Loading…
Reference in New Issue