staging: lustre: obdclass: eliminate NULL error return
authorBob Glossman <bob.glossman@intel.com>
Sun, 18 Sep 2016 20:38:25 +0000 (16:38 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Sep 2016 07:53:45 +0000 (09:53 +0200)
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.glossman@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.eremin@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/obdclass/lu_object.c

index 7339c8b..3f1fb28 100644 (file)
@@ -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);