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);
|
||||
|
||||
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,
|
||||
&res.seq_res, 0);
|
||||
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 = {
|
||||
[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");
|
||||
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;
|
||||
|
|
|
@ -95,6 +95,7 @@ struct nfs_client {
|
|||
#define NFS_SP4_MACH_CRED_MINIMAL 1 /* Minimal sp4_mach_cred - state ops
|
||||
* must use machine cred */
|
||||
#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 */
|
||||
|
||||
#ifdef CONFIG_NFS_FSCACHE
|
||||
|
|
Loading…
Reference in New Issue