[PATCH v4 26/59] do_filp_open(): DTRT when getting ERR_PTR() as pathname

Al Viro posted 59 patches 1 month ago
There is a newer version of this series
[PATCH v4 26/59] do_filp_open(): DTRT when getting ERR_PTR() as pathname
Posted by Al Viro 1 month ago
The rest of the set_nameidata() callers treat IS_ERR(pathname) as
"bail out immediately with PTR_ERR(pathname) as error".  Makes
life simpler for callers; do_filp_open() is the only exception
and its callers would also benefit from such calling conventions
change.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
 fs/namei.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/namei.c b/fs/namei.c
index 8f26e91de906..c8410dc6c0c6 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -4862,6 +4862,8 @@ struct file *do_filp_open(int dfd, struct filename *pathname,
 	int flags = op->lookup_flags;
 	struct file *filp;
 
+	if (IS_ERR(pathname))
+		return ERR_CAST(pathname);
 	set_nameidata(&nd, dfd, pathname, NULL);
 	filp = path_openat(&nd, op, flags | LOOKUP_RCU);
 	if (unlikely(filp == ERR_PTR(-ECHILD)))
-- 
2.47.3