xfs: fix a couple error sequence jumps in xfs_mountfs()
authorBrian Foster <bfoster@redhat.com>
Mon, 14 Jul 2014 21:41:25 +0000 (07:41 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 14 Jul 2014 21:41:25 +0000 (07:41 +1000)
xfs_mountfs() has a couple failure conditions that do not jump to the
correct labels. Specifically:

- xfs_initialize_perag_data() failure does not deallocate the log even
  though it occurs after log initialization
- xfs_mount_reset_sbqflags() failure returns the error directly rather
  than jump to the error sequence

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_mount.c

index d5c44a6bdb5b50c4393b6648acc7533beaf25b36..4e9dd4a9c69a4c0e9b57f20e7c1f857236c055af 100644 (file)
@@ -855,7 +855,7 @@ xfs_mountfs(
             !mp->m_sb.sb_inprogress) {
                error = xfs_initialize_perag_data(mp, sbp->sb_agcount);
                if (error)
-                       goto out_fail_wait;
+                       goto out_log_dealloc;;
        }
 
        /*
@@ -927,7 +927,7 @@ xfs_mountfs(
                        xfs_notice(mp, "resetting quota flags");
                        error = xfs_mount_reset_sbqflags(mp);
                        if (error)
-                               return error;
+                               goto out_rtunmount;
                }
        }