From e7d6dcdedc9c676c84e6bee3ed6cbf73d56ff791 Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Tue, 8 Oct 2013 18:23:15 -0500 Subject: [PATCH] LU-4067 osd: apply PTR_ERR() to right pointer In ofd_precreate_objects(), osd_index_ea_insert(), and osd_object_create() ensure that PTR_ERR() is applied to the right pointer. Also convert some explicit casts of ERR_PTRs to ERR_CAST() calls. Signed-off-by: John L. Hammond Change-Id: I846b10543ae426652ad72c277d2c0f0bc259fd6e Reviewed-on: http://review.whamcloud.com/7887 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Mike Pershin Reviewed-by: Alex Zhuravlev Reviewed-by: Andreas Dilger --- lustre/ofd/ofd_objects.c | 7 ++++--- lustre/osd-ldiskfs/osd_handler.c | 11 ++++++----- lustre/osd-zfs/osd_object.c | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lustre/ofd/ofd_objects.c b/lustre/ofd/ofd_objects.c index 00226cb..22c6580 100644 --- a/lustre/ofd/ofd_objects.c +++ b/lustre/ofd/ofd_objects.c @@ -84,7 +84,8 @@ struct ofd_object *ofd_object_find(const struct lu_env *env, if (likely(!IS_ERR(o))) fo = ofd_obj(o); else - fo = (struct ofd_object *)o; /* return error */ + fo = ERR_CAST(o); /* return error */ + RETURN(fo); } @@ -103,7 +104,7 @@ struct ofd_object *ofd_object_find_or_create(const struct lu_env *env, dto = dt_find_or_create(env, ofd->ofd_osd, fid, &info->fti_dof, attr); if (IS_ERR(dto)) - RETURN((struct ofd_object *)dto); + RETURN(ERR_CAST(dto)); fo_obj = lu_object_locate(dto->do_lu.lo_header, ofd->ofd_dt_dev.dd_lu_dev.ld_type); @@ -200,7 +201,7 @@ int ofd_precreate_objects(const struct lu_env *env, struct ofd_device *ofd, rc = ostid_to_fid(&info->fti_fid, &info->fti_ostid, 0); if (rc) { if (i == 0) - GOTO(out, rc = PTR_ERR(fo)); + GOTO(out, rc); nr = i; break; diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index 46d6c77..241fc19 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -4062,10 +4062,11 @@ struct osd_object *osd_object_find(const struct lu_env *env, lu_object_put(env, luch); child = ERR_PTR(-ENOENT); } - } else - child = (void *)luch; + } else { + child = ERR_CAST(luch); + } - return child; + return child; } /** @@ -4214,8 +4215,8 @@ static int osd_index_ea_insert(const struct lu_env *env, struct dt_object *dt, CERROR("%s: Can not find object "DFID"%u:%u: rc = %d\n", osd_name(osd), PFID(fid), id->oii_ino, id->oii_gen, - (int)PTR_ERR(child_inode)); - RETURN(PTR_ERR(child_inode)); + (int)PTR_ERR(child)); + RETURN(PTR_ERR(child)); } child_inode = igrab(child->oo_inode); } diff --git a/lustre/osd-zfs/osd_object.c b/lustre/osd-zfs/osd_object.c index 31180c6..8c2aba6 100644 --- a/lustre/osd-zfs/osd_object.c +++ b/lustre/osd-zfs/osd_object.c @@ -1491,7 +1491,7 @@ static int osd_object_create(const struct lu_env *env, struct dt_object *dt, db = osd_create_type_f(dof->dof_type)(env, osd, attr, zapid, oh); if (IS_ERR(db)) - GOTO(out, rc = PTR_ERR(th)); + GOTO(out, rc = PTR_ERR(db)); zde->zde_pad = 0; zde->zde_dnode = db->db_object; -- 1.8.3.1