Re: [PATCH 1/1] debugfs: use IS_ERR to check for error

From: Christian König
Date: Thu Sep 02 2021 - 11:10:34 EST


Am 02.09.21 um 14:20 schrieb Greg KH:
On Thu, Sep 02, 2021 at 02:03:12PM +0200, Christian König wrote:

Am 02.09.21 um 12:38 schrieb Greg KH:
On Thu, Sep 02, 2021 at 12:29:17PM +0200, Nirmoy Das wrote:
debugfs_create_file() returns encoded error so
use IS_ERR for checking return value.

References: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Famd%2F-%2Fissues%2F1686&data=04%7C01%7Cchristian.koenig%40amd.com%7Cffc1109aeb744082181b08d96e0c06db%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637661820207117289%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=6NDHX9sEhGF2jakVfUJ7Qurql6UAdNpFQZ6XvCjwz0E%3D&reserved=0
Signed-off-by: Nirmoy Das <nirmoy.das@xxxxxxx>
---
fs/debugfs/inode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
index 8129a430d789..2f117c57160d 100644
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -528,7 +528,7 @@ void debugfs_create_file_size(const char *name, umode_t mode,
{
struct dentry *de = debugfs_create_file(name, mode, parent, data, fops);
- if (de)
+ if (!IS_ERR(de))
d_inode(de)->i_size = file_size;
}
EXPORT_SYMBOL_GPL(debugfs_create_file_size);
--
2.32.0

Ah, good catch, I'll queue this up after 5.15-rc1 is out, thanks!
Thinking more about this if I'm not completely mistaken
debugfs_create_file() returns -ENODEV when debugfs is disabled and NULL on
any other error.
How can this function be called if debugfs is not enabled in the system
configuration? This _is_ the debugfs core code.

Well, that's what I meant. The original code is correct and Nirmoy's patch here is breaking it.

Nirmoys other patch is for a driver and there the function can indeed return both error code and NULL.

Thanks,
Christian.


thanks,

greg k-h