|
@@ -3026,6 +3026,7 @@ static int nfs4_proc_lookup_common(struct rpc_clnt **clnt, struct inode *dir,
|
|
|
int err;
|
|
|
do {
|
|
|
err = _nfs4_proc_lookup(client, dir, name, fhandle, fattr, label);
|
|
|
+ trace_nfs4_lookup(dir, name, err);
|
|
|
switch (err) {
|
|
|
case -NFS4ERR_BADNAME:
|
|
|
err = -ENOENT;
|
|
@@ -3261,8 +3262,9 @@ static int nfs4_proc_remove(struct inode *dir, struct qstr *name)
|
|
|
struct nfs4_exception exception = { };
|
|
|
int err;
|
|
|
do {
|
|
|
- err = nfs4_handle_exception(NFS_SERVER(dir),
|
|
|
- _nfs4_proc_remove(dir, name),
|
|
|
+ err = _nfs4_proc_remove(dir, name);
|
|
|
+ trace_nfs4_remove(dir, name, err);
|
|
|
+ err = nfs4_handle_exception(NFS_SERVER(dir), err,
|
|
|
&exception);
|
|
|
} while (exception.retry);
|
|
|
return err;
|
|
@@ -3291,7 +3293,8 @@ static void nfs4_proc_unlink_rpc_prepare(struct rpc_task *task, struct nfs_unlin
|
|
|
|
|
|
static int nfs4_proc_unlink_done(struct rpc_task *task, struct inode *dir)
|
|
|
{
|
|
|
- struct nfs_removeres *res = task->tk_msg.rpc_resp;
|
|
|
+ struct nfs_unlinkdata *data = task->tk_calldata;
|
|
|
+ struct nfs_removeres *res = &data->res;
|
|
|
|
|
|
if (!nfs4_sequence_done(task, &res->seq_res))
|
|
|
return 0;
|
|
@@ -3533,9 +3536,9 @@ static int nfs4_proc_symlink(struct inode *dir, struct dentry *dentry,
|
|
|
label = nfs4_label_init_security(dir, dentry, sattr, &l);
|
|
|
|
|
|
do {
|
|
|
- err = nfs4_handle_exception(NFS_SERVER(dir),
|
|
|
- _nfs4_proc_symlink(dir, dentry, page,
|
|
|
- len, sattr, label),
|
|
|
+ err = _nfs4_proc_symlink(dir, dentry, page, len, sattr, label);
|
|
|
+ trace_nfs4_symlink(dir, &dentry->d_name, err);
|
|
|
+ err = nfs4_handle_exception(NFS_SERVER(dir), err,
|
|
|
&exception);
|
|
|
} while (exception.retry);
|
|
|
|
|
@@ -3572,8 +3575,9 @@ static int nfs4_proc_mkdir(struct inode *dir, struct dentry *dentry,
|
|
|
|
|
|
sattr->ia_mode &= ~current_umask();
|
|
|
do {
|
|
|
- err = nfs4_handle_exception(NFS_SERVER(dir),
|
|
|
- _nfs4_proc_mkdir(dir, dentry, sattr, label),
|
|
|
+ err = _nfs4_proc_mkdir(dir, dentry, sattr, label);
|
|
|
+ trace_nfs4_mkdir(dir, &dentry->d_name, err);
|
|
|
+ err = nfs4_handle_exception(NFS_SERVER(dir), err,
|
|
|
&exception);
|
|
|
} while (exception.retry);
|
|
|
nfs4_label_release_security(label);
|
|
@@ -3680,8 +3684,9 @@ static int nfs4_proc_mknod(struct inode *dir, struct dentry *dentry,
|
|
|
|
|
|
sattr->ia_mode &= ~current_umask();
|
|
|
do {
|
|
|
- err = nfs4_handle_exception(NFS_SERVER(dir),
|
|
|
- _nfs4_proc_mknod(dir, dentry, sattr, label, rdev),
|
|
|
+ err = _nfs4_proc_mknod(dir, dentry, sattr, label, rdev);
|
|
|
+ trace_nfs4_mknod(dir, &dentry->d_name, err);
|
|
|
+ err = nfs4_handle_exception(NFS_SERVER(dir), err,
|
|
|
&exception);
|
|
|
} while (exception.retry);
|
|
|
|
|
@@ -5801,8 +5806,10 @@ int nfs4_proc_fs_locations(struct rpc_clnt *client, struct inode *dir,
|
|
|
struct nfs4_exception exception = { };
|
|
|
int err;
|
|
|
do {
|
|
|
- err = nfs4_handle_exception(NFS_SERVER(dir),
|
|
|
- _nfs4_proc_fs_locations(client, dir, name, fs_locations, page),
|
|
|
+ err = _nfs4_proc_fs_locations(client, dir, name,
|
|
|
+ fs_locations, page);
|
|
|
+ trace_nfs4_get_fs_locations(dir, name, err);
|
|
|
+ err = nfs4_handle_exception(NFS_SERVER(dir), err,
|
|
|
&exception);
|
|
|
} while (exception.retry);
|
|
|
return err;
|
|
@@ -5841,8 +5848,9 @@ int nfs4_proc_secinfo(struct inode *dir, const struct qstr *name,
|
|
|
struct nfs4_exception exception = { };
|
|
|
int err;
|
|
|
do {
|
|
|
- err = nfs4_handle_exception(NFS_SERVER(dir),
|
|
|
- _nfs4_proc_secinfo(dir, name, flavors),
|
|
|
+ err = _nfs4_proc_secinfo(dir, name, flavors);
|
|
|
+ trace_nfs4_secinfo(dir, name, err);
|
|
|
+ err = nfs4_handle_exception(NFS_SERVER(dir), err,
|
|
|
&exception);
|
|
|
} while (exception.retry);
|
|
|
return err;
|