diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2007-09-24 18:56:19 -0400 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2008-01-25 17:45:34 -0500 |
commit | 34d024f84345807bf44163fac84e921513dde323 (patch) | |
tree | aef303ae5feeb42cb8791acc1c0b8a74f0a97674 /fs/ocfs2/super.c | |
parent | 6f7b056ea9c6fa978c79ca626eff43549df94dbb (diff) |
ocfs2: Remove mount/unmount votes
The node maps that are set/unset by these votes are no longer relevant, thus
we can remove the mount and umount votes. Since those are the last two
remaining votes, we can also remove the entire vote infrastructure.
The vote thread has been renamed to the downconvert thread, and the small
amount of functionality related to managing it has been moved into
fs/ocfs2/dlmglue.c. All references to votes have been removed or updated.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/super.c')
-rw-r--r-- | fs/ocfs2/super.c | 43 |
1 files changed, 5 insertions, 38 deletions
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 64b81b341ece..1996820488cc 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -65,7 +65,6 @@ | |||
65 | #include "sysfile.h" | 65 | #include "sysfile.h" |
66 | #include "uptodate.h" | 66 | #include "uptodate.h" |
67 | #include "ver.h" | 67 | #include "ver.h" |
68 | #include "vote.h" | ||
69 | 68 | ||
70 | #include "buffer_head_io.h" | 69 | #include "buffer_head_io.h" |
71 | 70 | ||
@@ -1123,13 +1122,6 @@ static int ocfs2_mount_volume(struct super_block *sb) | |||
1123 | goto leave; | 1122 | goto leave; |
1124 | } | 1123 | } |
1125 | 1124 | ||
1126 | /* requires vote_thread to be running. */ | ||
1127 | status = ocfs2_register_net_handlers(osb); | ||
1128 | if (status < 0) { | ||
1129 | mlog_errno(status); | ||
1130 | goto leave; | ||
1131 | } | ||
1132 | |||
1133 | status = ocfs2_super_lock(osb, 1); | 1125 | status = ocfs2_super_lock(osb, 1); |
1134 | if (status < 0) { | 1126 | if (status < 0) { |
1135 | mlog_errno(status); | 1127 | mlog_errno(status); |
@@ -1144,8 +1136,6 @@ static int ocfs2_mount_volume(struct super_block *sb) | |||
1144 | goto leave; | 1136 | goto leave; |
1145 | } | 1137 | } |
1146 | 1138 | ||
1147 | ocfs2_populate_mounted_map(osb); | ||
1148 | |||
1149 | /* load all node-local system inodes */ | 1139 | /* load all node-local system inodes */ |
1150 | status = ocfs2_init_local_system_inodes(osb); | 1140 | status = ocfs2_init_local_system_inodes(osb); |
1151 | if (status < 0) { | 1141 | if (status < 0) { |
@@ -1168,15 +1158,6 @@ static int ocfs2_mount_volume(struct super_block *sb) | |||
1168 | if (ocfs2_mount_local(osb)) | 1158 | if (ocfs2_mount_local(osb)) |
1169 | goto leave; | 1159 | goto leave; |
1170 | 1160 | ||
1171 | /* This should be sent *after* we recovered our journal as it | ||
1172 | * will cause other nodes to unmark us as needing | ||
1173 | * recovery. However, we need to send it *before* dropping the | ||
1174 | * super block lock as otherwise their recovery threads might | ||
1175 | * try to clean us up while we're live! */ | ||
1176 | status = ocfs2_request_mount_vote(osb); | ||
1177 | if (status < 0) | ||
1178 | mlog_errno(status); | ||
1179 | |||
1180 | leave: | 1161 | leave: |
1181 | if (unlock_super) | 1162 | if (unlock_super) |
1182 | ocfs2_super_unlock(osb, 1); | 1163 | ocfs2_super_unlock(osb, 1); |
@@ -1234,10 +1215,6 @@ static void ocfs2_dismount_volume(struct super_block *sb, int mnt_err) | |||
1234 | mlog_errno(tmp); | 1215 | mlog_errno(tmp); |
1235 | return; | 1216 | return; |
1236 | } | 1217 | } |
1237 | |||
1238 | tmp = ocfs2_request_umount_vote(osb); | ||
1239 | if (tmp < 0) | ||
1240 | mlog_errno(tmp); | ||
1241 | } | 1218 | } |
1242 | 1219 | ||
1243 | if (osb->slot_num != OCFS2_INVALID_SLOT) | 1220 | if (osb->slot_num != OCFS2_INVALID_SLOT) |
@@ -1248,11 +1225,8 @@ static void ocfs2_dismount_volume(struct super_block *sb, int mnt_err) | |||
1248 | 1225 | ||
1249 | ocfs2_release_system_inodes(osb); | 1226 | ocfs2_release_system_inodes(osb); |
1250 | 1227 | ||
1251 | if (osb->dlm) { | 1228 | if (osb->dlm) |
1252 | ocfs2_unregister_net_handlers(osb); | ||
1253 | |||
1254 | ocfs2_dlm_shutdown(osb); | 1229 | ocfs2_dlm_shutdown(osb); |
1255 | } | ||
1256 | 1230 | ||
1257 | debugfs_remove(osb->osb_debug_root); | 1231 | debugfs_remove(osb->osb_debug_root); |
1258 | 1232 | ||
@@ -1336,19 +1310,13 @@ static int ocfs2_initialize_super(struct super_block *sb, | |||
1336 | osb->s_sectsize_bits = blksize_bits(sector_size); | 1310 | osb->s_sectsize_bits = blksize_bits(sector_size); |
1337 | BUG_ON(!osb->s_sectsize_bits); | 1311 | BUG_ON(!osb->s_sectsize_bits); |
1338 | 1312 | ||
1339 | osb->net_response_ids = 0; | ||
1340 | spin_lock_init(&osb->net_response_lock); | ||
1341 | INIT_LIST_HEAD(&osb->net_response_list); | ||
1342 | |||
1343 | INIT_LIST_HEAD(&osb->osb_net_handlers); | ||
1344 | init_waitqueue_head(&osb->recovery_event); | 1313 | init_waitqueue_head(&osb->recovery_event); |
1345 | spin_lock_init(&osb->vote_task_lock); | 1314 | spin_lock_init(&osb->dc_task_lock); |
1346 | init_waitqueue_head(&osb->vote_event); | 1315 | init_waitqueue_head(&osb->dc_event); |
1347 | osb->vote_work_sequence = 0; | 1316 | osb->dc_work_sequence = 0; |
1348 | osb->vote_wake_sequence = 0; | 1317 | osb->dc_wake_sequence = 0; |
1349 | INIT_LIST_HEAD(&osb->blocked_lock_list); | 1318 | INIT_LIST_HEAD(&osb->blocked_lock_list); |
1350 | osb->blocked_lock_count = 0; | 1319 | osb->blocked_lock_count = 0; |
1351 | INIT_LIST_HEAD(&osb->vote_list); | ||
1352 | spin_lock_init(&osb->osb_lock); | 1320 | spin_lock_init(&osb->osb_lock); |
1353 | 1321 | ||
1354 | atomic_set(&osb->alloc_stats.moves, 0); | 1322 | atomic_set(&osb->alloc_stats.moves, 0); |
@@ -1488,7 +1456,6 @@ static int ocfs2_initialize_super(struct super_block *sb, | |||
1488 | } | 1456 | } |
1489 | 1457 | ||
1490 | memcpy(&uuid_net_key, di->id2.i_super.s_uuid, sizeof(uuid_net_key)); | 1458 | memcpy(&uuid_net_key, di->id2.i_super.s_uuid, sizeof(uuid_net_key)); |
1491 | osb->net_key = le32_to_cpu(uuid_net_key); | ||
1492 | 1459 | ||
1493 | strncpy(osb->vol_label, di->id2.i_super.s_label, 63); | 1460 | strncpy(osb->vol_label, di->id2.i_super.s_label, 63); |
1494 | osb->vol_label[63] = '\0'; | 1461 | osb->vol_label[63] = '\0'; |