2019-02-08 17:26:00

by Mkrtchyan, Tigran

[permalink] [raw]
Subject: [PATCH] st_getattr: do not expect server to return rdattr_error

rfc7530:
5.8.1.12. Attribute 11: rdattr_error

Error returned from an attempt to retrieve attributes during a
READDIR operation.

IOW, we do not expect rdattr_error to be returned in reply to regular
GETATTR operation.

Signed-off-by: Tigran Mkrtchyan <[email protected]>
---
nfs4.0/servertests/st_getattr.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/nfs4.0/servertests/st_getattr.py b/nfs4.0/servertests/st_getattr.py
index 292fcd2..1c47ebf 100644
--- a/nfs4.0/servertests/st_getattr.py
+++ b/nfs4.0/servertests/st_getattr.py
@@ -1,12 +1,14 @@
from xdrdef.nfs4_const import *
from .environment import check
-from nfs4lib import get_attr_name
+from nfs4lib import get_attr_name, get_attrbitnum_dict
import nfs_ops
op = nfs_ops.NFS4ops()

def _try_mandatory(t, env, path):
c = env.c1
mandatory = [attr.bitnum for attr in env.attr_info if attr.mandatory]
+ # don't expect rdattr_error to be a part of returned attributes
+ mandatory.remove(get_attrbitnum_dict()['rdattr_error'])
ops = c.use_obj(path)
ops += [c.getattr(mandatory)]
res = c.compound(ops)
--
2.20.1



2019-02-14 17:12:01

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] st_getattr: do not expect server to return rdattr_error

On Fri, Feb 08, 2019 at 06:18:08PM +0100, Tigran Mkrtchyan wrote:
> rfc7530:
> 5.8.1.12. Attribute 11: rdattr_error
>
> Error returned from an attempt to retrieve attributes during a
> READDIR operation.
>
> IOW, we do not expect rdattr_error to be returned in reply to regular
> GETATTR operation.

Applied, thanks!

--b.

>
> Signed-off-by: Tigran Mkrtchyan <[email protected]>
> ---
> nfs4.0/servertests/st_getattr.py | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/nfs4.0/servertests/st_getattr.py b/nfs4.0/servertests/st_getattr.py
> index 292fcd2..1c47ebf 100644
> --- a/nfs4.0/servertests/st_getattr.py
> +++ b/nfs4.0/servertests/st_getattr.py
> @@ -1,12 +1,14 @@
> from xdrdef.nfs4_const import *
> from .environment import check
> -from nfs4lib import get_attr_name
> +from nfs4lib import get_attr_name, get_attrbitnum_dict
> import nfs_ops
> op = nfs_ops.NFS4ops()
>
> def _try_mandatory(t, env, path):
> c = env.c1
> mandatory = [attr.bitnum for attr in env.attr_info if attr.mandatory]
> + # don't expect rdattr_error to be a part of returned attributes
> + mandatory.remove(get_attrbitnum_dict()['rdattr_error'])
> ops = c.use_obj(path)
> ops += [c.getattr(mandatory)]
> res = c.compound(ops)
> --
> 2.20.1