summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHongling Zeng <zenghongling@kylinos.cn>2026-06-04 15:43:25 +0800
committerIlya Dryomov <idryomov@gmail.com>2026-08-26 19:24:19 +0200
commit4f49c3f8a5a86d237bb202ecb17c2802ddc8fd2f (patch)
treeb56ba7b93043c6d8b7c82715cbd5891576899baf
parent8d3ae59288f1e7d58d76558a6ee96d533bc5019f (diff)
downloadlinux-4f49c3f8a5a86d237bb202ecb17c2802ddc8fd2f.tar.gz
linux-4f49c3f8a5a86d237bb202ecb17c2802ddc8fd2f.zip
ceph: Fix ERR_PTR(0) in ceph_mkdir()
When mkdir succeeds, ceph_mkdir() sets ret to ERR_PTR(0) which is incorrect. It should return NULL instead for success. Fixes: 88d5baf69082 ("Change inode_operations.mkdir to return struct dentry *") Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn> Reviewed-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-rw-r--r--fs/ceph/dir.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
index ef9e92e362d3..b4b541a1180c 100644
--- a/fs/ceph/dir.c
+++ b/fs/ceph/dir.c
@@ -1174,7 +1174,7 @@ static struct dentry *ceph_mkdir(struct mnt_idmap *idmap, struct inode *dir,
!req->r_reply_info.head->is_target &&
!req->r_reply_info.head->is_dentry)
err = ceph_handle_notrace_create(dir, dentry);
- ret = ERR_PTR(err);
+ ret = err ? ERR_PTR(err) : NULL;
out_req:
if (!IS_ERR(ret) && req->r_dentry != dentry)
/* Some other dentry was spliced in */