diff options
author | Dave Chinner <david@fromorbit.com> | 2016-06-21 11:55:13 +1000 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2016-06-21 11:55:13 +1000 |
commit | f477cedc4e79a3233847106a18bf67be9bdf20e9 (patch) | |
tree | c7d0a000c9c2a865bf15322e99db9697f0aa53d7 /fs/xfs/xfs_super.c | |
parent | 9b7fad20760b8f47730f0353459dd39a89c415b9 (diff) | |
parent | 19b54ee66c4c5de8f8db74d5914d9a97161460bf (diff) |
Merge branch 'xfs-4.8-misc-fixes-2' into for-next
Diffstat (limited to 'fs/xfs/xfs_super.c')
-rw-r--r-- | fs/xfs/xfs_super.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 4700f09e928f..258b594f5e61 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -1294,6 +1294,7 @@ xfs_fs_remount( */ xfs_restore_resvblks(mp); xfs_log_work_queue(mp); + xfs_queue_eofblocks(mp); } /* rw -> ro */ @@ -1306,6 +1307,13 @@ xfs_fs_remount( * return it to the same size. */ xfs_save_resvblks(mp); + + /* + * Cancel background eofb scanning so it cannot race with the + * final log force+buftarg wait and deadlock the remount. + */ + cancel_delayed_work_sync(&mp->m_eofblocks_work); + xfs_quiesce_attr(mp); mp->m_flags |= XFS_MOUNT_RDONLY; } @@ -1692,8 +1700,9 @@ xfs_init_zones(void) if (!xfs_log_ticket_zone) goto out_free_ioend_bioset; - xfs_bmap_free_item_zone = kmem_zone_init(sizeof(xfs_bmap_free_item_t), - "xfs_bmap_free_item"); + xfs_bmap_free_item_zone = kmem_zone_init( + sizeof(struct xfs_bmap_free_item), + "xfs_bmap_free_item"); if (!xfs_bmap_free_item_zone) goto out_destroy_log_ticket_zone; |