diff options
Diffstat (limited to 'fs/xfs/xfs_super.c')
-rw-r--r-- | fs/xfs/xfs_super.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 206b97fd1d8a..19cbda196369 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c | |||
@@ -21,9 +21,7 @@ | |||
21 | #include "xfs_format.h" | 21 | #include "xfs_format.h" |
22 | #include "xfs_log_format.h" | 22 | #include "xfs_log_format.h" |
23 | #include "xfs_trans_resv.h" | 23 | #include "xfs_trans_resv.h" |
24 | #include "xfs_inum.h" | ||
25 | #include "xfs_sb.h" | 24 | #include "xfs_sb.h" |
26 | #include "xfs_ag.h" | ||
27 | #include "xfs_mount.h" | 25 | #include "xfs_mount.h" |
28 | #include "xfs_da_format.h" | 26 | #include "xfs_da_format.h" |
29 | #include "xfs_inode.h" | 27 | #include "xfs_inode.h" |
@@ -44,7 +42,6 @@ | |||
44 | #include "xfs_icache.h" | 42 | #include "xfs_icache.h" |
45 | #include "xfs_trace.h" | 43 | #include "xfs_trace.h" |
46 | #include "xfs_icreate_item.h" | 44 | #include "xfs_icreate_item.h" |
47 | #include "xfs_dinode.h" | ||
48 | #include "xfs_filestream.h" | 45 | #include "xfs_filestream.h" |
49 | #include "xfs_quota.h" | 46 | #include "xfs_quota.h" |
50 | #include "xfs_sysfs.h" | 47 | #include "xfs_sysfs.h" |
@@ -796,8 +793,7 @@ xfs_open_devices( | |||
796 | out_free_ddev_targ: | 793 | out_free_ddev_targ: |
797 | xfs_free_buftarg(mp, mp->m_ddev_targp); | 794 | xfs_free_buftarg(mp, mp->m_ddev_targp); |
798 | out_close_rtdev: | 795 | out_close_rtdev: |
799 | if (rtdev) | 796 | xfs_blkdev_put(rtdev); |
800 | xfs_blkdev_put(rtdev); | ||
801 | out_close_logdev: | 797 | out_close_logdev: |
802 | if (logdev && logdev != ddev) | 798 | if (logdev && logdev != ddev) |
803 | xfs_blkdev_put(logdev); | 799 | xfs_blkdev_put(logdev); |
@@ -842,10 +838,15 @@ STATIC int | |||
842 | xfs_init_mount_workqueues( | 838 | xfs_init_mount_workqueues( |
843 | struct xfs_mount *mp) | 839 | struct xfs_mount *mp) |
844 | { | 840 | { |
841 | mp->m_buf_workqueue = alloc_workqueue("xfs-buf/%s", | ||
842 | WQ_MEM_RECLAIM|WQ_FREEZABLE, 1, mp->m_fsname); | ||
843 | if (!mp->m_buf_workqueue) | ||
844 | goto out; | ||
845 | |||
845 | mp->m_data_workqueue = alloc_workqueue("xfs-data/%s", | 846 | mp->m_data_workqueue = alloc_workqueue("xfs-data/%s", |
846 | WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname); | 847 | WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname); |
847 | if (!mp->m_data_workqueue) | 848 | if (!mp->m_data_workqueue) |
848 | goto out; | 849 | goto out_destroy_buf; |
849 | 850 | ||
850 | mp->m_unwritten_workqueue = alloc_workqueue("xfs-conv/%s", | 851 | mp->m_unwritten_workqueue = alloc_workqueue("xfs-conv/%s", |
851 | WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname); | 852 | WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname); |
@@ -863,7 +864,7 @@ xfs_init_mount_workqueues( | |||
863 | goto out_destroy_cil; | 864 | goto out_destroy_cil; |
864 | 865 | ||
865 | mp->m_log_workqueue = alloc_workqueue("xfs-log/%s", | 866 | mp->m_log_workqueue = alloc_workqueue("xfs-log/%s", |
866 | WQ_FREEZABLE, 0, mp->m_fsname); | 867 | WQ_FREEZABLE|WQ_HIGHPRI, 0, mp->m_fsname); |
867 | if (!mp->m_log_workqueue) | 868 | if (!mp->m_log_workqueue) |
868 | goto out_destroy_reclaim; | 869 | goto out_destroy_reclaim; |
869 | 870 | ||
@@ -884,6 +885,8 @@ out_destroy_unwritten: | |||
884 | destroy_workqueue(mp->m_unwritten_workqueue); | 885 | destroy_workqueue(mp->m_unwritten_workqueue); |
885 | out_destroy_data_iodone_queue: | 886 | out_destroy_data_iodone_queue: |
886 | destroy_workqueue(mp->m_data_workqueue); | 887 | destroy_workqueue(mp->m_data_workqueue); |
888 | out_destroy_buf: | ||
889 | destroy_workqueue(mp->m_buf_workqueue); | ||
887 | out: | 890 | out: |
888 | return -ENOMEM; | 891 | return -ENOMEM; |
889 | } | 892 | } |
@@ -898,6 +901,7 @@ xfs_destroy_mount_workqueues( | |||
898 | destroy_workqueue(mp->m_cil_workqueue); | 901 | destroy_workqueue(mp->m_cil_workqueue); |
899 | destroy_workqueue(mp->m_data_workqueue); | 902 | destroy_workqueue(mp->m_data_workqueue); |
900 | destroy_workqueue(mp->m_unwritten_workqueue); | 903 | destroy_workqueue(mp->m_unwritten_workqueue); |
904 | destroy_workqueue(mp->m_buf_workqueue); | ||
901 | } | 905 | } |
902 | 906 | ||
903 | /* | 907 | /* |
@@ -1000,7 +1004,6 @@ xfs_fs_evict_inode( | |||
1000 | clear_inode(inode); | 1004 | clear_inode(inode); |
1001 | XFS_STATS_INC(vn_rele); | 1005 | XFS_STATS_INC(vn_rele); |
1002 | XFS_STATS_INC(vn_remove); | 1006 | XFS_STATS_INC(vn_remove); |
1003 | XFS_STATS_DEC(vn_active); | ||
1004 | 1007 | ||
1005 | xfs_inactive(ip); | 1008 | xfs_inactive(ip); |
1006 | } | 1009 | } |