53 lines
1.6 KiB
Diff
53 lines
1.6 KiB
Diff
am-utils-6.2 - fix wcc attr usage in unlink3_or_rmdir3()
|
|
|
|
From: Ian Kent <raven@themaw.net>
|
|
|
|
The definition of the wcc post op attributes should be am_fattr3 not
|
|
am_wcc_attr in unlink3_or_rmdir3().
|
|
|
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
|
---
|
|
amd/nfs_subr.c | 9 +++++----
|
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/amd/nfs_subr.c b/amd/nfs_subr.c
|
|
index a383618..b88a40c 100644
|
|
--- a/amd/nfs_subr.c
|
|
+++ b/amd/nfs_subr.c
|
|
@@ -1058,7 +1058,8 @@ static am_nfsstat3 unlink3_or_rmdir3(am_diropargs3 *argp,
|
|
am_pre_op_attr *pre_op_dir = &wcc_data->before;
|
|
am_post_op_attr *post_op_dir = &wcc_data->after;
|
|
nfsfattr *fattr;
|
|
- am_wcc_attr *pre_op_wcc_attr, *post_op_wcc_attr;
|
|
+ am_wcc_attr *pre_op_wcc_attr;
|
|
+ am_fattr3 *post_op_wcc_attr;
|
|
am_node *mp, *ap;
|
|
int retry;
|
|
|
|
@@ -1085,7 +1086,7 @@ static am_nfsstat3 unlink3_or_rmdir3(am_diropargs3 *argp,
|
|
fattr_to_wcc_attr(fattr, pre_op_wcc_attr);
|
|
|
|
if (mp->am_fattr.na_type != NFDIR) {
|
|
- fattr_to_wcc_attr(fattr, post_op_wcc_attr);
|
|
+ fattr_to_fattr3(fattr, post_op_wcc_attr);
|
|
res = nfs_error(ENOTDIR);
|
|
goto out;
|
|
}
|
|
@@ -1105,14 +1106,14 @@ static am_nfsstat3 unlink3_or_rmdir3(am_diropargs3 *argp,
|
|
*/
|
|
else if (retry == ENOENT)
|
|
retry = 0;
|
|
- fattr_to_wcc_attr(fattr, post_op_wcc_attr);
|
|
+ fattr_to_fattr3(fattr, post_op_wcc_attr);
|
|
res = nfs_error(retry);
|
|
} else {
|
|
forcibly_timeout_mp(mp);
|
|
/* we can't wait for the expire so use the attributes as
|
|
* they are now for the post op wcc attributes.
|
|
*/
|
|
- fattr_to_wcc_attr(fattr, post_op_wcc_attr);
|
|
+ fattr_to_fattr3(fattr, post_op_wcc_attr);
|
|
res = AM_NFS3_OK;
|
|
}
|
|
|