| From acf3c303f655911c6a164a5804f9041517e1f927 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 16 Nov 2021 09:55:01 -0500 |
| Subject: NFSv42: Don't fail clone() unless the OP_CLONE operation failed |
| |
| From: Trond Myklebust <trond.myklebust@hammerspace.com> |
| |
| [ Upstream commit d3c45824ad65aebf765fcf51366d317a29538820 ] |
| |
| The failure to retrieve post-op attributes has no bearing on whether or |
| not the clone operation itself was successful. We must therefore ignore |
| the return value of decode_getfattr() when looking at the success or |
| failure of nfs4_xdr_dec_clone(). |
| |
| Fixes: 36022770de6c ("nfs42: add CLONE xdr functions") |
| Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/nfs/nfs42xdr.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| diff --git a/fs/nfs/nfs42xdr.c b/fs/nfs/nfs42xdr.c |
| index 0ca482a51e532..988d262029580 100644 |
| --- a/fs/nfs/nfs42xdr.c |
| +++ b/fs/nfs/nfs42xdr.c |
| @@ -439,8 +439,7 @@ static int nfs4_xdr_dec_clone(struct rpc_rqst *rqstp, |
| status = decode_clone(xdr); |
| if (status) |
| goto out; |
| - status = decode_getfattr(xdr, res->dst_fattr, res->server); |
| - |
| + decode_getfattr(xdr, res->dst_fattr, res->server); |
| out: |
| res->rpc_status = status; |
| return status; |
| -- |
| 2.33.0 |
| |