diff options
| author | Hongling Zeng <zenghongling@kylinos.cn> | 2026-05-13 18:34:06 +0800 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-05-15 15:32:43 +0200 |
| commit | 8a220d1c312c66194f4a33dd52d1fba42bc2b341 (patch) | |
| tree | 654edcc2f80d9b3438d9ec464f79e82afce6aff6 | |
| parent | 45205929a3a3310e4978f4097d8ed4fca36b2c32 (diff) | |
cachefiles: Fix error return when vfs_mkdir() fails
When vfs_mkdir() fails, the error code is not extracted from the
returned error pointer. This causes mkdir_error to be reached with
ret=0, which leads to returning ERR_PTR(0) (NULL) instead of a
proper error pointer.
Fix this by extracting the error code from the error pointer when
vfs_mkdir() fails.
Fixes: 406fad7698f5 ("cachefiles: Fix oops in vfs_mkdir from cachefiles_get_directory")
Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn>
Link: https://patch.msgid.link/20260513103406.202320-1-zenghongling@kylinos.cn
Signed-off-by: Christian Brauner <brauner@kernel.org>
| -rw-r--r-- | fs/cachefiles/namei.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c index 1b83ed0e0a63..2937db690b40 100644 --- a/fs/cachefiles/namei.c +++ b/fs/cachefiles/namei.c @@ -130,6 +130,8 @@ retry: ret = cachefiles_inject_write_error(); if (ret == 0) { subdir = vfs_mkdir(&nop_mnt_idmap, d_inode(dir), subdir, 0700, NULL); + if (IS_ERR(subdir)) + ret = PTR_ERR(subdir); } else { end_creating(subdir); subdir = ERR_PTR(ret); |
