From: Bob Glossman <bob.gloss...@intel.com>

Always return an ERR_PTR() on errors, never return a NULL,
in lu_object_find_slice().  Also clean up callers who
no longer need special case handling of NULL returns.

Signed-off-by: Bob Glossman <bob.gloss...@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5858
Reviewed-on: http://review.whamcloud.com/12554
Reviewed-by: Dmitry Eremin <dmitry.ere...@intel.com>
Reviewed-by: Fan Yong <fan.y...@intel.com>
Reviewed-by: John L. Hammond <john.hamm...@intel.com>
Reviewed-by: Oleg Drokin <oleg.dro...@intel.com>
Signed-off-by: James Simmons <jsimm...@infradead.org>
---
 drivers/staging/lustre/lustre/obdclass/lu_object.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c 
b/drivers/staging/lustre/lustre/obdclass/lu_object.c
index 7339c8b..3f1fb28 100644
--- a/drivers/staging/lustre/lustre/obdclass/lu_object.c
+++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c
@@ -767,13 +767,15 @@ struct lu_object *lu_object_find_slice(const struct 
lu_env *env,
        struct lu_object *obj;
 
        top = lu_object_find(env, dev, f, conf);
-       if (!IS_ERR(top)) {
-               obj = lu_object_locate(top->lo_header, dev->ld_type);
-               if (!obj)
-                       lu_object_put(env, top);
-       } else {
-               obj = top;
+       if (IS_ERR(top))
+               return top;
+
+       obj = lu_object_locate(top->lo_header, dev->ld_type);
+       if (unlikely(!obj)) {
+               lu_object_put(env, top);
+               obj = ERR_PTR(-ENOENT);
        }
+
        return obj;
 }
 EXPORT_SYMBOL(lu_object_find_slice);
-- 
1.7.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to