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