Re: XFS warning in 2.6.18-rc4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/08/06, Nathan Scott <[email protected]> wrote:
On Wed, Aug 09, 2006 at 11:04:53PM +0300, Meelis Roos wrote:
> fs/xfs/xfs_bmap.c: In function 'xfs_bmapi':
> fs/xfs/xfs_bmap.c:2662: warning: 'rtx' is used uninitialized in this function

You have a particularly dense compiler, unfortunately.  This code
has always been this way, its just a false cc warning that can be
safely ignored until you upgrade to a fixed compiler (unless I'm
missing something - please enlighten me if so).  It does seem to
be the case that there is no way 'rtx' will be used uninitialised
when xfs_rtpick_extent() doesn't fail... no?

Ok, I may be reading something wrong here, but I think the warning is
actually not correct.

In fs/xfs/xfs_rtalloc.c::xfs_rtpick_extent() there is this code :

...
       if ((error = xfs_trans_iget(mp, tp, mp->m_sb.sb_rbmino, 0,
                                       XFS_ILOCK_EXCL, &ip)))
               return error;
...
before anything even touches 'pick' (which is the last argument of
type "xfs_rtblock_t  *" which is what "&rtx" is being passed to that
function as, from fs/xfs/xfs_bmap.c::xfs_bmap_rtalloc() at line 2659
before 'rtx' then used at line 2662.

Look at this block of code from fs/xfs/xfs_bmap.c::xfs_bmap_rtalloc()  :

...
2658:       if (ap->eof && ap->off == 0) {
2659:                error = xfs_rtpick_extent(mp, ap->tp, ralen, &rtx);
2660:                if (error)
2661:                        return error;
2662:                ap->rval = rtx * mp->m_sb.sb_rextsize;
2663:        } else {
2664:                ap->rval = 0;
2665:        }
..

'rtx' has not been initialized in this function before this block of code.
If the call to xfs_rtpick_extent() should happen to fail from the
check quoted above, then 'rtx' will in fact be used uninitialized in
line 2662 - except that will never happen, because if the check in In
fs/xfs/xfs_rtalloc.c::xfs_rtpick_extent() fails then error will be !=
0 and then well never get down to line 2662.

Or am I missing something ?


PS. Above line numbers etc are from 2.6.18-rc4.


--
Jesper Juhl <[email protected]>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux