Message ID | 20110603145014.GU12709@twin.jikos.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Excerpts from David Sterba's message of 2011-06-03 10:50:14 -0400: > From: David Sterba <dsterba@suse.cz> > > With Linus' tree, today's linux-next build (powercp ppc64_defconfig) > produced this warning: > > fs/btrfs/delayed-inode.c: In function 'btrfs_delayed_update_inode': > fs/btrfs/delayed-inode.c:1598:6: warning: 'ret' may be used > uninitialized in this function > > Introduced by commit 16cdcec736cd ("btrfs: implement delayed inode items > operation"). > > This fixes a bug in btrfs_update_inode(): if the returned value from > btrfs_delayed_update_inode is a nonzero garbage, inode stat data are not > updated and several call paths may hit a BUG_ON or fail with strange > code. Ugh, thanks! It looks like the gcc uninit stuff isn't as verbose as it used to be, but it does catch a bunch of allocated/set but not used vars. I have a nitems = 0 fix in my tree as well. -chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c index 01e2950..8cb012f 100644 --- a/fs/btrfs/delayed-inode.c +++ b/fs/btrfs/delayed-inode.c @@ -1595,7 +1595,7 @@ int btrfs_delayed_update_inode(struct btrfs_trans_handle *trans, struct btrfs_root *root, struct inode *inode) { struct btrfs_delayed_node *delayed_node; - int ret; + int ret = 0; delayed_node = btrfs_get_or_create_delayed_node(inode); if (IS_ERR(delayed_node))