diff options
Diffstat (limited to 'fs/xfs/xfs_vfsops.c')
-rw-r--r-- | fs/xfs/xfs_vfsops.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index 47c890778bb6..ba8f7a3e4028 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c | |||
@@ -480,13 +480,19 @@ xfs_mount( | |||
480 | } | 480 | } |
481 | if (rtdev) { | 481 | if (rtdev) { |
482 | mp->m_rtdev_targp = xfs_alloc_buftarg(rtdev, 1); | 482 | mp->m_rtdev_targp = xfs_alloc_buftarg(rtdev, 1); |
483 | if (!mp->m_rtdev_targp) | 483 | if (!mp->m_rtdev_targp) { |
484 | xfs_blkdev_put(logdev); | ||
485 | xfs_blkdev_put(rtdev); | ||
484 | goto error0; | 486 | goto error0; |
487 | } | ||
485 | } | 488 | } |
486 | mp->m_logdev_targp = (logdev && logdev != ddev) ? | 489 | mp->m_logdev_targp = (logdev && logdev != ddev) ? |
487 | xfs_alloc_buftarg(logdev, 1) : mp->m_ddev_targp; | 490 | xfs_alloc_buftarg(logdev, 1) : mp->m_ddev_targp; |
488 | if (!mp->m_logdev_targp) | 491 | if (!mp->m_logdev_targp) { |
492 | xfs_blkdev_put(logdev); | ||
493 | xfs_blkdev_put(rtdev); | ||
489 | goto error0; | 494 | goto error0; |
495 | } | ||
490 | 496 | ||
491 | /* | 497 | /* |
492 | * Setup flags based on mount(2) options and then the superblock | 498 | * Setup flags based on mount(2) options and then the superblock |