diff options
author | Arnd Bergmann <arnd@arndb.de> | 2014-03-17 10:17:07 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2014-03-17 10:17:07 -0400 |
commit | 38edc2da5014e70e46a724d97c3ef3dde106331b (patch) | |
tree | 590499bacd062e8dd74c6f05a7d811dd714a2d70 /fs/xfs/xfs_mount.c | |
parent | 937b5991ca7717ceba99014f2ad3f51c85cdb9ad (diff) | |
parent | 28b191118c11719bb27db621425a70be28a40e08 (diff) |
Merge tag 'omap-for-v3.15/dt-overo-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt
Updates to the .dts files to support more Gumstix boards.
These are sent separately from the rest of the .dts changes
as these depend on the fixes merged into v3.14-rc4, and
needed a bit more time to get updated on the fixes.
* tag 'omap-for-v3.15/dt-overo-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: dts: Add support for the Overo Summit
ARM: dts: Add support for the Overo Chestnut43
ARM: dts: Add support for the Overo Alto35
ARM: dts: Add support for the Overo Gallop43
ARM: dts: Add support for the Overo Palo43
ARM: dts: overo: Add LIS33DE accelerometer
ARM: dts: overo: Create a file for common Gumstix peripherals
ARM: dts: overo: Push uart3 pinmux down to expansion board
ARM: dts: omap3-tobi: Add AT24C01 EEPROM
ARM: dts: omap3-tobi: Use include file omap-gpmc-smsc9221
ARM: dts: omap: Add common file for SMSC9221
ARM: dts: omap3-overo: Add HSUSB PHY
ARM: dts: omap3-overo: Enable WiFi/BT combo
ARM: dts: omap3-overo: Add missing pinctrl
ARM: dts: omap3-tobi: Add missing pinctrl
ARM: dts: overo: reorganize include files
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Conflicts:
arch/arm/boot/dts/omap3-overo.dtsi
Diffstat (limited to 'fs/xfs/xfs_mount.c')
-rw-r--r-- | fs/xfs/xfs_mount.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 02df7b408a26..f96c05669a9e 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c | |||
@@ -282,22 +282,29 @@ xfs_readsb( | |||
282 | struct xfs_sb *sbp = &mp->m_sb; | 282 | struct xfs_sb *sbp = &mp->m_sb; |
283 | int error; | 283 | int error; |
284 | int loud = !(flags & XFS_MFSI_QUIET); | 284 | int loud = !(flags & XFS_MFSI_QUIET); |
285 | const struct xfs_buf_ops *buf_ops; | ||
285 | 286 | ||
286 | ASSERT(mp->m_sb_bp == NULL); | 287 | ASSERT(mp->m_sb_bp == NULL); |
287 | ASSERT(mp->m_ddev_targp != NULL); | 288 | ASSERT(mp->m_ddev_targp != NULL); |
288 | 289 | ||
289 | /* | 290 | /* |
291 | * For the initial read, we must guess at the sector | ||
292 | * size based on the block device. It's enough to | ||
293 | * get the sb_sectsize out of the superblock and | ||
294 | * then reread with the proper length. | ||
295 | * We don't verify it yet, because it may not be complete. | ||
296 | */ | ||
297 | sector_size = xfs_getsize_buftarg(mp->m_ddev_targp); | ||
298 | buf_ops = NULL; | ||
299 | |||
300 | /* | ||
290 | * Allocate a (locked) buffer to hold the superblock. | 301 | * Allocate a (locked) buffer to hold the superblock. |
291 | * This will be kept around at all times to optimize | 302 | * This will be kept around at all times to optimize |
292 | * access to the superblock. | 303 | * access to the superblock. |
293 | */ | 304 | */ |
294 | sector_size = xfs_getsize_buftarg(mp->m_ddev_targp); | ||
295 | |||
296 | reread: | 305 | reread: |
297 | bp = xfs_buf_read_uncached(mp->m_ddev_targp, XFS_SB_DADDR, | 306 | bp = xfs_buf_read_uncached(mp->m_ddev_targp, XFS_SB_DADDR, |
298 | BTOBB(sector_size), 0, | 307 | BTOBB(sector_size), 0, buf_ops); |
299 | loud ? &xfs_sb_buf_ops | ||
300 | : &xfs_sb_quiet_buf_ops); | ||
301 | if (!bp) { | 308 | if (!bp) { |
302 | if (loud) | 309 | if (loud) |
303 | xfs_warn(mp, "SB buffer read failed"); | 310 | xfs_warn(mp, "SB buffer read failed"); |
@@ -328,12 +335,13 @@ reread: | |||
328 | } | 335 | } |
329 | 336 | ||
330 | /* | 337 | /* |
331 | * If device sector size is smaller than the superblock size, | 338 | * Re-read the superblock so the buffer is correctly sized, |
332 | * re-read the superblock so the buffer is correctly sized. | 339 | * and properly verified. |
333 | */ | 340 | */ |
334 | if (sector_size < sbp->sb_sectsize) { | 341 | if (buf_ops == NULL) { |
335 | xfs_buf_relse(bp); | 342 | xfs_buf_relse(bp); |
336 | sector_size = sbp->sb_sectsize; | 343 | sector_size = sbp->sb_sectsize; |
344 | buf_ops = loud ? &xfs_sb_buf_ops : &xfs_sb_quiet_buf_ops; | ||
337 | goto reread; | 345 | goto reread; |
338 | } | 346 | } |
339 | 347 | ||