[Cluster-devel] GFS2: Combine functions gfs2_glock_wait and wait_on_holder
Steven Whitehouse
swhiteho at redhat.com
Tue Feb 26 10:08:08 UTC 2013
Hi,
That is a false positive, because gfs2_lookup_by_inum does not call the
gfs2_glock_nq_num() function with arguments which specify a try lock.
There are few uses of the try lock left in GFS2 and over time we are
eliminating them gradually,
Steve.
On Tue, 2013-02-26 at 09:13 +0300, Dan Carpenter wrote:
> 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