[Cluster-devel] GFS2: Combine functions gfs2_glock_wait and wait_on_holder

Dan Carpenter dan.carpenter at oracle.com
Tue Feb 26 06:13:49 UTC 2013


Hello Bob Peterson,

This is probably a false positive but I thought it would be
interesting to ask.

The patch 07a790494260: "GFS2: Combine functions gfs2_glock_wait and 
wait_on_holder" from Aug 9, 2012, leads to the following warning on
my not yet pushed version of Smatch:

"fs/gfs2/inode.c:217 gfs2_lookup_by_inum()
	 error: passing non neg 13 to ERR_PTR"

   884  /**
   885   * gfs2_glock_wait - wait on a glock acquisition
   886   * @gh: the glock holder
   887   *
   888   * Returns: 0 on success
   889   */
   890  
   891  int gfs2_glock_wait(struct gfs2_holder *gh)
   892  {
   893          unsigned long time1 = jiffies;
   894  
   895          might_sleep();
   896          wait_on_bit(&gh->gh_iflags, HIF_WAIT, gfs2_glock_holder_wait, TASK_UNINTERRUPTIBLE);
   897          if (time_after(jiffies, time1 + HZ)) /* have we waited > a second? */
   898                  /* Lengthen the minimum hold time. */
   899                  gh->gh_gl->gl_hold_time = min(gh->gh_gl->gl_hold_time +
   900                                                GL_GLOCK_HOLD_INCR,
   901                                                GL_GLOCK_MAX_HOLD);
   902          return gh->gh_error;
                       ^^^^^^^^^^^^
Can this be GLR_TRYFAILED at this point?  If it is then it would
cause a problem later on.

   903  }

regards,
dan carpenter




More information about the Cluster-devel mailing list