* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Note: some routines in this file are just trivial wrappers
- * (e.g. nfsd4_lookup()) defined solely for the sake of consistent
- * naming. Since all such routines have been declared "inline",
- * there shouldn't be any associated overhead. At some point in
- * the future, I might inline these "by hand" to clean up a
- * little.
*/
#include <linux/param.h>
}
-static inline __be32
+static __be32
nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_open *open)
{
/*
* filehandle-manipulating ops.
*/
-static inline __be32
+static __be32
nfsd4_getfh(struct nfsd4_compound_state *cstate, struct svc_fh **getfh)
{
if (!cstate->current_fh.fh_dentry)
return nfs_ok;
}
-static inline __be32
+static __be32
nfsd4_putfh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_putfh *putfh)
{
return fh_verify(rqstp, &cstate->current_fh, 0, MAY_NOP);
}
-static inline __be32
+static __be32
nfsd4_putrootfh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate)
{
__be32 status;
return status;
}
-static inline __be32
+static __be32
nfsd4_restorefh(struct nfsd4_compound_state *cstate)
{
if (!cstate->save_fh.fh_dentry)
return nfs_ok;
}
-static inline __be32
+static __be32
nfsd4_savefh(struct nfsd4_compound_state *cstate)
{
if (!cstate->current_fh.fh_dentry)
/*
* misc nfsv4 ops
*/
-static inline __be32
+static __be32
nfsd4_access(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_access *access)
{
&access->ac_supported);
}
-static inline __be32
+static __be32
nfsd4_commit(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_commit *commit)
{
return status;
}
-static inline __be32
+static __be32
nfsd4_getattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_getattr *getattr)
{
return nfs_ok;
}
-static inline __be32
+static __be32
nfsd4_link(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_link *link)
{
"..", 2, &cstate->current_fh);
}
-static inline __be32
+static __be32
nfsd4_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_lookup *lookup)
{
&cstate->current_fh);
}
-static inline __be32
+static __be32
nfsd4_read(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_read *read)
{
return status;
}
-static inline __be32
+static __be32
nfsd4_readdir(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_readdir *readdir)
{
return nfs_ok;
}
-static inline __be32
+static __be32
nfsd4_readlink(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_readlink *readlink)
{
return nfs_ok;
}
-static inline __be32
+static __be32
nfsd4_remove(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_remove *remove)
{
return status;
}
-static inline __be32
+static __be32
nfsd4_rename(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_rename *rename)
{
return status;
}
-static inline __be32
+static __be32
nfsd4_setattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_setattr *setattr)
{
return status;
}
-static inline __be32
+static __be32
nfsd4_write(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_write *write)
{
* to NFS_OK after the call; NVERIFY by mapping NFSERR_NOT_SAME to NFS_OK.
*/
static __be32
-nfsd4_verify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
+_nfsd4_verify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_verify *verify)
{
__be32 *buf, *p;
return status;
}
+static __be32
+nfsd4_nverify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
+ struct nfsd4_verify *verify)
+{
+ __be32 status;
+
+ status = _nfsd4_verify(rqstp, cstate, verify);
+ return status == nfserr_not_same ? nfs_ok : status;
+}
+
+static __be32
+nfsd4_verify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
+ struct nfsd4_verify *verify)
+{
+ __be32 status;
+
+ status = _nfsd4_verify(rqstp, cstate, verify);
+ return status == nfserr_same ? nfs_ok : status;
+}
+
/*
* NULL call.
*/
op->status = nfsd4_lookupp(rqstp, cstate);
break;
case OP_NVERIFY:
- op->status = nfsd4_verify(rqstp, cstate,
+ op->status = nfsd4_nverify(rqstp, cstate,
&op->u.nverify);
- if (op->status == nfserr_not_same)
- op->status = nfs_ok;
break;
case OP_OPEN:
op->status = nfsd4_open(rqstp, cstate,
case OP_VERIFY:
op->status = nfsd4_verify(rqstp, cstate,
&op->u.verify);
- if (op->status == nfserr_same)
- op->status = nfs_ok;
break;
case OP_WRITE:
op->status = nfsd4_write(rqstp, cstate, &op->u.write);