svn commit: r330135 - head/sys/ufs/ffs
Rodney W. Grimes
freebsd at pdx.rh.CN85.dnsmgr.net
Thu Mar 1 02:05:49 UTC 2018
> On Wed, Feb 28, 2018 at 5:59 PM, Rodney W. Grimes <
> freebsd at pdx.rh.cn85.dnsmgr.net> wrote:
>
> > > Author: cem
> > > Date: Thu Mar 1 00:29:52 2018
> > > New Revision: 330135
> > > URL: https://svnweb.freebsd.org/changeset/base/330135
> > >
> > > Log:
> > > ffs: softdep_disk_write_complete: Quiesce spurious Coverity warning
> > >
> > > Coverity cannot determine that handle_written_indirdep() does not
> > access
> > > uninitialized 'sbp' when flags argument is zero.
> > >
> > > So, simply move the initialization slightly sooner to silence the
> > warning.
> > >
> > > No functional change.
> >
> > I am always concerned when we modify code just to silence a
> > warning from a static analysis tool. There use to be a pretty
> > hard and fast rule about this: Dont do it, at most document
> > that the tool is lacking and giving false positives.
> >
> > It double raises an eye brow when the change is made to
> > silence the tool and "no function change" should be occuring.
>
>
> In this case, there's no harm, and I think it makes the code a little
> easier to understand...
If infact handle_written_indirdep() should not access sbp then it
would be safe to pass it a void * and let the code blow up if it
should derefernce it. Thus simply changing the call that was
causing the problem and not moving any lines of code.
> Warner
>
>
> > > Reported by: Coverity
> > > Sponsored by: Dell EMC Isilon
> > >
> > > Modified:
> > > head/sys/ufs/ffs/ffs_softdep.c
> > >
> > > Modified: head/sys/ufs/ffs/ffs_softdep.c
> > > ============================================================
> > ==================
> > > --- head/sys/ufs/ffs/ffs_softdep.c Thu Mar 1 00:05:14 2018
> > (r330134)
> > > +++ head/sys/ufs/ffs/ffs_softdep.c Thu Mar 1 00:29:52 2018
> > (r330135)
> > > @@ -10984,6 +10984,8 @@ softdep_disk_write_complete(bp)
> > > if (ump == NULL)
> > > return;
> > >
> > > + sbp = NULL;
> > > +
> > > /*
> > > * If an error occurred while doing the write, then the data
> > > * has not hit the disk and the dependencies cannot be processed.
> > > @@ -11026,7 +11028,6 @@ softdep_disk_write_complete(bp)
> > > /*
> > > * Ump SU lock must not be released anywhere in this code segment.
> > > */
> > > - sbp = NULL;
> > > owk = NULL;
> > > while ((wk = LIST_FIRST(&bp->b_dep)) != NULL) {
> > > WORKLIST_REMOVE(wk);
> > >
> > >
> >
> > --
> > Rod Grimes
> > rgrimes at freebsd.org
> >
> >
--
Rod Grimes rgrimes at freebsd.org
More information about the svn-src-all
mailing list