cachefiles: Fix oops in vfs_mkdir from cachefiles_get_directory
authorMarc Dionne <marc.dionne@auristor.com>
Tue, 25 Mar 2025 12:59:05 +0000 (09:59 -0300)
committerChristian Brauner <brauner@kernel.org>
Tue, 25 Mar 2025 13:59:14 +0000 (14:59 +0100)
commit406fad7698f5bf21ab6b5ca195bf4b9e0b3990ed
tree26b2514128c3d05d4f3eb3adc9b72f5d5cc09ac1
parentaf7bb0d2ca459f15cb5ca604dab5d9af103643f0
cachefiles: Fix oops in vfs_mkdir from cachefiles_get_directory

Commit c54b386969a5 ("VFS: Change vfs_mkdir() to return the dentry.")
changed cachefiles_get_directory, replacing "subdir" with a ERR_PTR
from the result of cachefiles_inject_write_error, which is either 0
or some error code.  This causes an oops when the resulting pointer
is passed to vfs_mkdir.

Use a similar pattern to what is used earlier in the function; replace
subdir with either the return value from vfs_mkdir, or the ERR_PTR
of the cachefiles_inject_write_error() return value, but only if it
is non zero.

Fixes: c54b386969a5 ("VFS: Change vfs_mkdir() to return the dentry.")
cc: netfs@lists.linux.dev
Signed-off-by: Marc Dionne <marc.dionne@auristor.com>
Link: https://lore.kernel.org/r/20250325125905.395372-1-marc.dionne@auristor.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/cachefiles/namei.c