knfsd: nfsd4: implement secinfo
Implement the secinfo operation. (Thanks to Usha Ketineni wrote an earlier version of this support.) Cc: Usha Ketineni <uketinen@us.ibm.com> Signed-off-by: Andy Adamson <andros@citi.umich.edu> Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
ae4c40b1d8
commit
dcb488a3b7
@@ -47,6 +47,7 @@
|
||||
#include <linux/nfsd/state.h>
|
||||
#include <linux/nfsd/xdr4.h>
|
||||
#include <linux/nfs4_acl.h>
|
||||
#include <linux/sunrpc/gss_api.h>
|
||||
|
||||
#define NFSDDBG_FACILITY NFSDDBG_PROC
|
||||
|
||||
@@ -609,6 +610,30 @@ nfsd4_rename(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||
return status;
|
||||
}
|
||||
|
||||
static __be32
|
||||
nfsd4_secinfo(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||
struct nfsd4_secinfo *secinfo)
|
||||
{
|
||||
struct svc_fh resfh;
|
||||
struct svc_export *exp;
|
||||
struct dentry *dentry;
|
||||
__be32 err;
|
||||
|
||||
fh_init(&resfh, NFS4_FHSIZE);
|
||||
err = nfsd_lookup_dentry(rqstp, &cstate->current_fh,
|
||||
secinfo->si_name, secinfo->si_namelen,
|
||||
&exp, &dentry);
|
||||
if (err)
|
||||
return err;
|
||||
if (dentry->d_inode == NULL) {
|
||||
exp_put(exp);
|
||||
err = nfserr_noent;
|
||||
} else
|
||||
secinfo->si_exp = exp;
|
||||
dput(dentry);
|
||||
return err;
|
||||
}
|
||||
|
||||
static __be32
|
||||
nfsd4_setattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||
struct nfsd4_setattr *setattr)
|
||||
@@ -1008,6 +1033,9 @@ static struct nfsd4_operation nfsd4_ops[OP_RELEASE_LOCKOWNER+1] = {
|
||||
[OP_SAVEFH] = {
|
||||
.op_func = (nfsd4op_func)nfsd4_savefh,
|
||||
},
|
||||
[OP_SECINFO] = {
|
||||
.op_func = (nfsd4op_func)nfsd4_secinfo,
|
||||
},
|
||||
[OP_SETATTR] = {
|
||||
.op_func = (nfsd4op_func)nfsd4_setattr,
|
||||
},
|
||||
|
Reference in New Issue
Block a user