<br><br>On Thursday, October 20, 2016, Dan Carpenter &lt;<a href="mailto:dan.carpenter@oracle.com">dan.carpenter@oracle.com</a>&gt; wrote:<br>&gt; Hello Jinshan Xiong,<br>&gt;<br>&gt; The patch 1e1db2a97be5: &quot;staging: lustre: clio: Revise read ahead<br>&gt; implementation&quot; from Oct 2, 2016, leads to the following static<br>&gt; checker warning:<br>&gt;<br>&gt;         drivers/staging/lustre/lustre/lov/lov_io.c:611 lov_io_read_ahead()<br>&gt;         error: &#39;sub&#39; dereferencing possible ERR_PTR()<br>&gt;<br>&gt; drivers/staging/lustre/lustre/lov/lov_io.c<br>&gt;    589  static int lov_io_read_ahead(const struct lu_env *env,<br>&gt;    590                               const struct cl_io_slice *ios,<br>&gt;    591                               pgoff_t start, struct cl_read_ahead *ra)<br>&gt;    592  {<br>&gt;    593          struct lov_io *lio = cl2lov_io(env, ios);<br>&gt;    594          struct lov_object *loo = lio-&gt;lis_object;<br>&gt;    595          struct cl_object *obj = lov2cl(loo);<br>&gt;    596          struct lov_layout_raid0 *r0 = lov_r0(loo);<br>&gt;    597          unsigned int pps; /* pages per stripe */<br>&gt;    598          struct lov_io_sub *sub;<br>&gt;    599          pgoff_t ra_end;<br>&gt;    600          loff_t suboff;<br>&gt;    601          int stripe;<br>&gt;    602          int rc;<br>&gt;    603<br>&gt;    604          stripe = lov_stripe_number(loo-&gt;lo_lsm, cl_offset(obj, start));<br>&gt;    605          if (unlikely(!r0-&gt;lo_sub[stripe]))<br>&gt;    606                  return -EIO;<br>&gt;    607<br>&gt;    608          sub = lov_sub_get(env, lio, stripe);<br>&gt;                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br><br>Hey Dan,<br>May I ask what static checker are you using?