xfs
[Top] [All Lists]

[PATCH] xfs: Fix uninitialized return value in xfs_alloc_fix_freelist()

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: [PATCH] xfs: Fix uninitialized return value in xfs_alloc_fix_freelist()
From: Jan Kara <jack@xxxxxxxx>
Date: Wed, 15 Jul 2015 10:16:08 +0200
Cc: Jan Kara <jack@xxxxxxxx>, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
xfs_alloc_fix_freelist() can sometimes jump to out_agbp_relse without
ever setting value of 'error' variable which is then returned. This can
happen e.g. when pag->pagf_init is set but AG is for metadata and we
want to allocate user data.

Fix the problem by initializing 'error' to 0, which is the desired
return value when we decide to skip this group.

CC: xfs@xxxxxxxxxxx
Coverity-id: 1309714
Signed-off-by: Jan Kara <jack@xxxxxxxx>
---
 fs/xfs/libxfs/xfs_alloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
index f9e9ffe6fb46..7f8f2a0d4567 100644
--- a/fs/xfs/libxfs/xfs_alloc.c
+++ b/fs/xfs/libxfs/xfs_alloc.c
@@ -1937,7 +1937,7 @@ xfs_alloc_fix_freelist(
        struct xfs_alloc_arg    targs;  /* local allocation arguments */
        xfs_agblock_t           bno;    /* freelist block */
        xfs_extlen_t            need;   /* total blocks needed in freelist */
-       int                     error;
+       int                     error = 0;
 
        if (!pag->pagf_init) {
                error = xfs_alloc_read_agf(mp, tp, args->agno, flags, &agbp);
-- 
2.1.4

<Prev in Thread] Current Thread [Next in Thread>