From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Tue, 26 Feb 2013 10:08:08 +0000 Subject: [Cluster-devel] GFS2: Combine functions gfs2_glock_wait and wait_on_holder In-Reply-To: <20130226061348.GA16153@longonot.mountain> References: <20130226061348.GA16153@longonot.mountain> Message-ID: <1361873288.2705.2.camel@menhir> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 >