]> git.hungrycats.org Git - linux/commitdiff
ceph: Fix ERR_PTR(0) in ceph_mkdir()
authorHongling Zeng <zenghongling@kylinos.cn>
Thu, 4 Jun 2026 07:43:25 +0000 (15:43 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 26 Aug 2026 17:24:19 +0000 (19:24 +0200)
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>
fs/ceph/dir.c

index ef9e92e362d3ea02f92e7325349992eb8b2723d5..b4b541a1180c594df433acff6a793ce8113431f7 100644 (file)
@@ -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 */