| From 5aa3a7da22c3210791d0be6c7390b6c3dc5a756a Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 9 Mar 2021 00:00:20 -0800 |
| Subject: fs: orangefs: fix error return code of orangefs_revalidate_lookup() |
| |
| From: Jia-Ju Bai <baijiaju1990@gmail.com> |
| |
| [ Upstream commit 4c2b46c824a78fc8190d8eafaaea5a9078fe7479 ] |
| |
| When op_alloc() returns NULL to new_op, no error return code of |
| orangefs_revalidate_lookup() is assigned. |
| To fix this bug, ret is assigned with -ENOMEM in this case. |
| |
| Fixes: 8bb8aefd5afb ("OrangeFS: Change almost all instances of the string PVFS2 to OrangeFS.") |
| Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> |
| Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> |
| Signed-off-by: Mike Marshall <hubcap@omnibond.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/orangefs/dcache.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/fs/orangefs/dcache.c b/fs/orangefs/dcache.c |
| index fe484cf93e5cd..8bbe9486e3a62 100644 |
| --- a/fs/orangefs/dcache.c |
| +++ b/fs/orangefs/dcache.c |
| @@ -26,8 +26,10 @@ static int orangefs_revalidate_lookup(struct dentry *dentry) |
| gossip_debug(GOSSIP_DCACHE_DEBUG, "%s: attempting lookup.\n", __func__); |
| |
| new_op = op_alloc(ORANGEFS_VFS_OP_LOOKUP); |
| - if (!new_op) |
| + if (!new_op) { |
| + ret = -ENOMEM; |
| goto out_put_parent; |
| + } |
| |
| new_op->upcall.req.lookup.sym_follow = ORANGEFS_LOOKUP_LINK_NO_FOLLOW; |
| new_op->upcall.req.lookup.parent_refn = parent->refn; |
| -- |
| 2.33.0 |
| |