diff options
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/glock.c | 25 | ||||
-rw-r--r-- | fs/gfs2/lock_dlm.c | 8 | ||||
-rw-r--r-- | fs/gfs2/ops_fstype.c | 11 | ||||
-rw-r--r-- | fs/gfs2/recovery.c | 8 | ||||
-rw-r--r-- | fs/gfs2/super.c | 8 |
5 files changed, 7 insertions, 53 deletions
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index ee4e04fe60fc..7f513b1ceb2c 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c | |||
@@ -856,27 +856,6 @@ void gfs2_holder_uninit(struct gfs2_holder *gh) | |||
856 | } | 856 | } |
857 | 857 | ||
858 | /** | 858 | /** |
859 | * gfs2_glock_holder_wait | ||
860 | * @word: unused | ||
861 | * | ||
862 | * This function and gfs2_glock_demote_wait both show up in the WCHAN | ||
863 | * field. Thus I've separated these otherwise identical functions in | ||
864 | * order to be more informative to the user. | ||
865 | */ | ||
866 | |||
867 | static int gfs2_glock_holder_wait(void *word) | ||
868 | { | ||
869 | schedule(); | ||
870 | return 0; | ||
871 | } | ||
872 | |||
873 | static int gfs2_glock_demote_wait(void *word) | ||
874 | { | ||
875 | schedule(); | ||
876 | return 0; | ||
877 | } | ||
878 | |||
879 | /** | ||
880 | * gfs2_glock_wait - wait on a glock acquisition | 859 | * gfs2_glock_wait - wait on a glock acquisition |
881 | * @gh: the glock holder | 860 | * @gh: the glock holder |
882 | * | 861 | * |
@@ -888,7 +867,7 @@ int gfs2_glock_wait(struct gfs2_holder *gh) | |||
888 | unsigned long time1 = jiffies; | 867 | unsigned long time1 = jiffies; |
889 | 868 | ||
890 | might_sleep(); | 869 | might_sleep(); |
891 | wait_on_bit(&gh->gh_iflags, HIF_WAIT, gfs2_glock_holder_wait, TASK_UNINTERRUPTIBLE); | 870 | wait_on_bit(&gh->gh_iflags, HIF_WAIT, TASK_UNINTERRUPTIBLE); |
892 | if (time_after(jiffies, time1 + HZ)) /* have we waited > a second? */ | 871 | if (time_after(jiffies, time1 + HZ)) /* have we waited > a second? */ |
893 | /* Lengthen the minimum hold time. */ | 872 | /* Lengthen the minimum hold time. */ |
894 | gh->gh_gl->gl_hold_time = min(gh->gh_gl->gl_hold_time + | 873 | gh->gh_gl->gl_hold_time = min(gh->gh_gl->gl_hold_time + |
@@ -1128,7 +1107,7 @@ void gfs2_glock_dq_wait(struct gfs2_holder *gh) | |||
1128 | struct gfs2_glock *gl = gh->gh_gl; | 1107 | struct gfs2_glock *gl = gh->gh_gl; |
1129 | gfs2_glock_dq(gh); | 1108 | gfs2_glock_dq(gh); |
1130 | might_sleep(); | 1109 | might_sleep(); |
1131 | wait_on_bit(&gl->gl_flags, GLF_DEMOTE, gfs2_glock_demote_wait, TASK_UNINTERRUPTIBLE); | 1110 | wait_on_bit(&gl->gl_flags, GLF_DEMOTE, TASK_UNINTERRUPTIBLE); |
1132 | } | 1111 | } |
1133 | 1112 | ||
1134 | /** | 1113 | /** |
diff --git a/fs/gfs2/lock_dlm.c b/fs/gfs2/lock_dlm.c index 4fafea1c9ecf..641383a9c1bb 100644 --- a/fs/gfs2/lock_dlm.c +++ b/fs/gfs2/lock_dlm.c | |||
@@ -936,12 +936,6 @@ fail: | |||
936 | return error; | 936 | return error; |
937 | } | 937 | } |
938 | 938 | ||
939 | static int dlm_recovery_wait(void *word) | ||
940 | { | ||
941 | schedule(); | ||
942 | return 0; | ||
943 | } | ||
944 | |||
945 | static int control_first_done(struct gfs2_sbd *sdp) | 939 | static int control_first_done(struct gfs2_sbd *sdp) |
946 | { | 940 | { |
947 | struct lm_lockstruct *ls = &sdp->sd_lockstruct; | 941 | struct lm_lockstruct *ls = &sdp->sd_lockstruct; |
@@ -976,7 +970,7 @@ restart: | |||
976 | fs_info(sdp, "control_first_done wait gen %u\n", start_gen); | 970 | fs_info(sdp, "control_first_done wait gen %u\n", start_gen); |
977 | 971 | ||
978 | wait_on_bit(&ls->ls_recover_flags, DFL_DLM_RECOVERY, | 972 | wait_on_bit(&ls->ls_recover_flags, DFL_DLM_RECOVERY, |
979 | dlm_recovery_wait, TASK_UNINTERRUPTIBLE); | 973 | TASK_UNINTERRUPTIBLE); |
980 | goto restart; | 974 | goto restart; |
981 | } | 975 | } |
982 | 976 | ||
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index bc564c0d6d16..d3eae244076e 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c | |||
@@ -1024,20 +1024,13 @@ void gfs2_lm_unmount(struct gfs2_sbd *sdp) | |||
1024 | lm->lm_unmount(sdp); | 1024 | lm->lm_unmount(sdp); |
1025 | } | 1025 | } |
1026 | 1026 | ||
1027 | static int gfs2_journalid_wait(void *word) | ||
1028 | { | ||
1029 | if (signal_pending(current)) | ||
1030 | return -EINTR; | ||
1031 | schedule(); | ||
1032 | return 0; | ||
1033 | } | ||
1034 | |||
1035 | static int wait_on_journal(struct gfs2_sbd *sdp) | 1027 | static int wait_on_journal(struct gfs2_sbd *sdp) |
1036 | { | 1028 | { |
1037 | if (sdp->sd_lockstruct.ls_ops->lm_mount == NULL) | 1029 | if (sdp->sd_lockstruct.ls_ops->lm_mount == NULL) |
1038 | return 0; | 1030 | return 0; |
1039 | 1031 | ||
1040 | return wait_on_bit(&sdp->sd_flags, SDF_NOJOURNALID, gfs2_journalid_wait, TASK_INTERRUPTIBLE); | 1032 | return wait_on_bit(&sdp->sd_flags, SDF_NOJOURNALID, TASK_INTERRUPTIBLE) |
1033 | ? -EINTR : 0; | ||
1041 | } | 1034 | } |
1042 | 1035 | ||
1043 | void gfs2_online_uevent(struct gfs2_sbd *sdp) | 1036 | void gfs2_online_uevent(struct gfs2_sbd *sdp) |
diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c index 94555d4c5698..573bd3b758fa 100644 --- a/fs/gfs2/recovery.c +++ b/fs/gfs2/recovery.c | |||
@@ -591,12 +591,6 @@ done: | |||
591 | wake_up_bit(&jd->jd_flags, JDF_RECOVERY); | 591 | wake_up_bit(&jd->jd_flags, JDF_RECOVERY); |
592 | } | 592 | } |
593 | 593 | ||
594 | static int gfs2_recovery_wait(void *word) | ||
595 | { | ||
596 | schedule(); | ||
597 | return 0; | ||
598 | } | ||
599 | |||
600 | int gfs2_recover_journal(struct gfs2_jdesc *jd, bool wait) | 594 | int gfs2_recover_journal(struct gfs2_jdesc *jd, bool wait) |
601 | { | 595 | { |
602 | int rv; | 596 | int rv; |
@@ -609,7 +603,7 @@ int gfs2_recover_journal(struct gfs2_jdesc *jd, bool wait) | |||
609 | BUG_ON(!rv); | 603 | BUG_ON(!rv); |
610 | 604 | ||
611 | if (wait) | 605 | if (wait) |
612 | wait_on_bit(&jd->jd_flags, JDF_RECOVERY, gfs2_recovery_wait, | 606 | wait_on_bit(&jd->jd_flags, JDF_RECOVERY, |
613 | TASK_UNINTERRUPTIBLE); | 607 | TASK_UNINTERRUPTIBLE); |
614 | 608 | ||
615 | return wait ? jd->jd_recover_error : 0; | 609 | return wait ? jd->jd_recover_error : 0; |
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 1319b5c4ec68..2607ff13d486 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c | |||
@@ -864,12 +864,6 @@ static int gfs2_make_fs_ro(struct gfs2_sbd *sdp) | |||
864 | return error; | 864 | return error; |
865 | } | 865 | } |
866 | 866 | ||
867 | static int gfs2_umount_recovery_wait(void *word) | ||
868 | { | ||
869 | schedule(); | ||
870 | return 0; | ||
871 | } | ||
872 | |||
873 | /** | 867 | /** |
874 | * gfs2_put_super - Unmount the filesystem | 868 | * gfs2_put_super - Unmount the filesystem |
875 | * @sb: The VFS superblock | 869 | * @sb: The VFS superblock |
@@ -894,7 +888,7 @@ restart: | |||
894 | continue; | 888 | continue; |
895 | spin_unlock(&sdp->sd_jindex_spin); | 889 | spin_unlock(&sdp->sd_jindex_spin); |
896 | wait_on_bit(&jd->jd_flags, JDF_RECOVERY, | 890 | wait_on_bit(&jd->jd_flags, JDF_RECOVERY, |
897 | gfs2_umount_recovery_wait, TASK_UNINTERRUPTIBLE); | 891 | TASK_UNINTERRUPTIBLE); |
898 | goto restart; | 892 | goto restart; |
899 | } | 893 | } |
900 | spin_unlock(&sdp->sd_jindex_spin); | 894 | spin_unlock(&sdp->sd_jindex_spin); |