2020-03-06 01:36:18

by Qiujun Huang

[permalink] [raw]
Subject: [PATCH] fs/ceph: return errcode in __get_parent().

return real errcode when it's different from ENOENT.

Signed-off-by: Qiujun Huang <[email protected]>
---
fs/ceph/export.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/fs/ceph/export.c b/fs/ceph/export.c
index b6bfa94..79dc068 100644
--- a/fs/ceph/export.c
+++ b/fs/ceph/export.c
@@ -315,6 +315,11 @@ static struct dentry *__get_parent(struct super_block *sb,

req->r_num_caps = 1;
err = ceph_mdsc_do_request(mdsc, NULL, req);
+ if (err) {
+ ceph_mdsc_put_request(req);
+ return ERR_PTR(err);
+ }
+
inode = req->r_target_inode;
if (inode)
ihold(inode);
--
1.8.3.1


2020-03-06 12:14:22

by Jeff Layton

[permalink] [raw]
Subject: Re: [PATCH] fs/ceph: return errcode in __get_parent().

On Fri, 2020-03-06 at 09:34 +0800, Qiujun Huang wrote:
> return real errcode when it's different from ENOENT.
>
> Signed-off-by: Qiujun Huang <[email protected]>
> ---
> fs/ceph/export.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/fs/ceph/export.c b/fs/ceph/export.c
> index b6bfa94..79dc068 100644
> --- a/fs/ceph/export.c
> +++ b/fs/ceph/export.c
> @@ -315,6 +315,11 @@ static struct dentry *__get_parent(struct super_block *sb,
>
> req->r_num_caps = 1;
> err = ceph_mdsc_do_request(mdsc, NULL, req);
> + if (err) {
> + ceph_mdsc_put_request(req);
> + return ERR_PTR(err);
> + }
> +
> inode = req->r_target_inode;
> if (inode)
> ihold(inode);

Looks good! Merged into the ceph-client/testing branch and should make
5.7. Thanks for the patch!
--
Jeff Layton <[email protected]>