xfs: merge xfs_ag.h into xfs_format.h
[firefly-linux-kernel-4.4.55.git] / fs / xfs / xfs_mount.c
index fbf0384a466fa25fba334862b0c1762be68ab6d4..e627336265c83c2e50ec94a0398b8ae360eacab8 100644 (file)
@@ -24,7 +24,6 @@
 #include "xfs_bit.h"
 #include "xfs_inum.h"
 #include "xfs_sb.h"
-#include "xfs_ag.h"
 #include "xfs_mount.h"
 #include "xfs_da_format.h"
 #include "xfs_inode.h"
@@ -41,7 +40,6 @@
 #include "xfs_fsops.h"
 #include "xfs_trace.h"
 #include "xfs_icache.h"
-#include "xfs_dinode.h"
 #include "xfs_sysfs.h"
 
 
@@ -61,8 +59,6 @@ static DEFINE_MUTEX(xfs_uuid_table_mutex);
 static int xfs_uuid_table_size;
 static uuid_t *xfs_uuid_table;
 
-extern struct kset *xfs_kset;
-
 /*
  * See if the UUID is unique among mounted XFS filesystems.
  * Mount fails if UUID is nil or a FS with the same UUID is already mounted.
@@ -302,21 +298,15 @@ xfs_readsb(
         * access to the superblock.
         */
 reread:
-       bp = xfs_buf_read_uncached(mp->m_ddev_targp, XFS_SB_DADDR,
-                                  BTOBB(sector_size), 0, buf_ops);
-       if (!bp) {
-               if (loud)
-                       xfs_warn(mp, "SB buffer read failed");
-               return -EIO;
-       }
-       if (bp->b_error) {
-               error = bp->b_error;
+       error = xfs_buf_read_uncached(mp->m_ddev_targp, XFS_SB_DADDR,
+                                  BTOBB(sector_size), 0, &bp, buf_ops);
+       if (error) {
                if (loud)
                        xfs_warn(mp, "SB validate failed with error %d.", error);
                /* bad CRC means corrupted metadata */
                if (error == -EFSBADCRC)
                        error = -EFSCORRUPTED;
-               goto release_buf;
+               return error;
        }
 
        /*
@@ -546,40 +536,43 @@ xfs_set_inoalignment(xfs_mount_t *mp)
  * Check that the data (and log if separate) is an ok size.
  */
 STATIC int
-xfs_check_sizes(xfs_mount_t *mp)
+xfs_check_sizes(
+       struct xfs_mount *mp)
 {
-       xfs_buf_t       *bp;
+       struct xfs_buf  *bp;
        xfs_daddr_t     d;
+       int             error;
 
        d = (xfs_daddr_t)XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks);
        if (XFS_BB_TO_FSB(mp, d) != mp->m_sb.sb_dblocks) {
                xfs_warn(mp, "filesystem size mismatch detected");
                return -EFBIG;
        }
-       bp = xfs_buf_read_uncached(mp->m_ddev_targp,
+       error = xfs_buf_read_uncached(mp->m_ddev_targp,
                                        d - XFS_FSS_TO_BB(mp, 1),
-                                       XFS_FSS_TO_BB(mp, 1), 0, NULL);
-       if (!bp) {
+                                       XFS_FSS_TO_BB(mp, 1), 0, &bp, NULL);
+       if (error) {
                xfs_warn(mp, "last sector read failed");
-               return -EIO;
+               return error;
        }
        xfs_buf_relse(bp);
 
-       if (mp->m_logdev_targp != mp->m_ddev_targp) {
-               d = (xfs_daddr_t)XFS_FSB_TO_BB(mp, mp->m_sb.sb_logblocks);
-               if (XFS_BB_TO_FSB(mp, d) != mp->m_sb.sb_logblocks) {
-                       xfs_warn(mp, "log size mismatch detected");
-                       return -EFBIG;
-               }
-               bp = xfs_buf_read_uncached(mp->m_logdev_targp,
+       if (mp->m_logdev_targp == mp->m_ddev_targp)
+               return 0;
+
+       d = (xfs_daddr_t)XFS_FSB_TO_BB(mp, mp->m_sb.sb_logblocks);
+       if (XFS_BB_TO_FSB(mp, d) != mp->m_sb.sb_logblocks) {
+               xfs_warn(mp, "log size mismatch detected");
+               return -EFBIG;
+       }
+       error = xfs_buf_read_uncached(mp->m_logdev_targp,
                                        d - XFS_FSB_TO_BB(mp, 1),
-                                       XFS_FSB_TO_BB(mp, 1), 0, NULL);
-               if (!bp) {
-                       xfs_warn(mp, "log device read failed");
-                       return -EIO;
-               }
-               xfs_buf_relse(bp);
+                                       XFS_FSB_TO_BB(mp, 1), 0, &bp, NULL);
+       if (error) {
+               xfs_warn(mp, "log device read failed");
+               return error;
        }
+       xfs_buf_relse(bp);
        return 0;
 }
 
@@ -729,7 +722,6 @@ xfs_mountfs(
 
        xfs_set_maxicount(mp);
 
-       mp->m_kobj.kobject.kset = xfs_kset;
        error = xfs_sysfs_init(&mp->m_kobj, &xfs_mp_ktype, NULL, mp->m_fsname);
        if (error)
                goto out;