- switch (op->opnum) {
- case OP_ACCESS:
- op->status = nfsd4_access(rqstp, ¤t_fh, &op->u.access);
- break;
- case OP_CLOSE:
- op->status = nfsd4_close(rqstp, ¤t_fh, &op->u.close);
- if (op->u.close.cl_stateowner)
- op->replay =
- &op->u.close.cl_stateowner->so_replay;
- break;
- case OP_COMMIT:
- op->status = nfsd4_commit(rqstp, ¤t_fh, &op->u.commit);
- break;
- case OP_CREATE:
- op->status = nfsd4_create(rqstp, ¤t_fh, &op->u.create);
- break;
- case OP_GETATTR:
- op->status = nfsd4_getattr(rqstp, ¤t_fh, &op->u.getattr);
- break;
- case OP_GETFH:
- op->status = nfsd4_getfh(¤t_fh, &op->u.getfh);
- break;
- case OP_LINK:
- op->status = nfsd4_link(rqstp, ¤t_fh, &save_fh, &op->u.link);
- break;
- case OP_LOCK:
- op->status = nfsd4_lock(rqstp, ¤t_fh, &op->u.lock);
- if (op->u.lock.lk_stateowner)
- op->replay =
- &op->u.lock.lk_stateowner->so_replay;
- break;
- case OP_LOCKT:
- op->status = nfsd4_lockt(rqstp, ¤t_fh, &op->u.lockt);
- break;
- case OP_LOCKU:
- op->status = nfsd4_locku(rqstp, ¤t_fh, &op->u.locku);
- if (op->u.locku.lu_stateowner)
- op->replay =
- &op->u.locku.lu_stateowner->so_replay;
- break;
- case OP_LOOKUP:
- op->status = nfsd4_lookup(rqstp, ¤t_fh, &op->u.lookup);
- break;
- case OP_LOOKUPP:
- op->status = nfsd4_lookupp(rqstp, ¤t_fh);
- break;
- case OP_NVERIFY:
- op->status = nfsd4_verify(rqstp, ¤t_fh, &op->u.nverify);
- if (op->status == nfserr_not_same)
- op->status = nfs_ok;
- break;
- case OP_OPEN:
- op->status = nfsd4_open(rqstp, ¤t_fh, &op->u.open);
- if (op->u.open.op_stateowner)
- op->replay =
- &op->u.open.op_stateowner->so_replay;
- break;
- case OP_OPEN_CONFIRM:
- op->status = nfsd4_open_confirm(rqstp, ¤t_fh, &op->u.open_confirm);
- if (op->u.open_confirm.oc_stateowner)
- op->replay =
- &op->u.open_confirm.oc_stateowner->so_replay;
- break;
- case OP_OPEN_DOWNGRADE:
- op->status = nfsd4_open_downgrade(rqstp, ¤t_fh, &op->u.open_downgrade);
- if (op->u.open_downgrade.od_stateowner)
- op->replay =
- &op->u.open_downgrade.od_stateowner->so_replay;
- break;
- case OP_PUTFH:
- op->status = nfsd4_putfh(rqstp, ¤t_fh, &op->u.putfh);
- break;
- case OP_PUTROOTFH:
- op->status = nfsd4_putrootfh(rqstp, ¤t_fh);
- break;
- case OP_READ:
- op->status = nfsd4_read(rqstp, ¤t_fh, &op->u.read);
- break;
- case OP_READDIR:
- op->status = nfsd4_readdir(rqstp, ¤t_fh, &op->u.readdir);
- break;
- case OP_READLINK:
- op->status = nfsd4_readlink(rqstp, ¤t_fh, &op->u.readlink);
- break;
- case OP_REMOVE:
- op->status = nfsd4_remove(rqstp, ¤t_fh, &op->u.remove);
- break;
- case OP_RENAME:
- op->status = nfsd4_rename(rqstp, ¤t_fh, &save_fh, &op->u.rename);
- break;
- case OP_RENEW:
- op->status = nfsd4_renew(&op->u.renew);
- break;
- case OP_RESTOREFH:
- op->status = nfsd4_restorefh(¤t_fh, &save_fh);
- break;
- case OP_SAVEFH:
- op->status = nfsd4_savefh(¤t_fh, &save_fh);
- break;
- case OP_SETATTR:
- op->status = nfsd4_setattr(rqstp, ¤t_fh, &op->u.setattr);
- break;
- case OP_SETCLIENTID:
- op->status = nfsd4_setclientid(rqstp, &op->u.setclientid);
- break;
- case OP_SETCLIENTID_CONFIRM:
- op->status = nfsd4_setclientid_confirm(rqstp, &op->u.setclientid_confirm);
- break;
- case OP_VERIFY:
- op->status = nfsd4_verify(rqstp, ¤t_fh, &op->u.verify);
- if (op->status == nfserr_same)
- op->status = nfs_ok;
- break;
- case OP_WRITE:
- op->status = nfsd4_write(rqstp, ¤t_fh, &op->u.write);
- break;
- case OP_RELEASE_LOCKOWNER:
- op->status = nfsd4_release_lockowner(rqstp, &op->u.release_lockowner);
- break;
- default: