[Ocfs2-commits] khackel commits r1453 - trunk/src

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Sep 10 16:35:23 CDT 2004


Author: khackel
Date: 2004-09-10 16:35:22 -0500 (Fri, 10 Sep 2004)
New Revision: 1453

Modified:
   trunk/src/nm.c
Log:
bug if sync_inode fails

Modified: trunk/src/nm.c
===================================================================
--- trunk/src/nm.c	2004-09-10 20:16:24 UTC (rev 1452)
+++ trunk/src/nm.c	2004-09-10 21:35:22 UTC (rev 1453)
@@ -64,7 +64,7 @@
 					  __u32 flags, int *master_alive, int *write_lock, 
 					  int *change_master, struct inode *inode);
 
-static int ocfs_process_vote_pre_change_master(int vote_type, int flags, int *vote_response, int *status, struct inode *inode);
+static int ocfs_process_vote_pre_change_master(int vote_type, int flags, int *vote_response, struct inode *inode);
 static int ocfs_process_vote_change_master(ocfs_super *osb, int *vote_response, int *status, struct inode *inode, ocfs_lock_res *lockres, __s16 node_num, __u64 lock_id);
 static int ocfs_process_vote_post_change_master(ocfs_super *osb, int vote_type, int flags, int *vote_response, struct inode *inode, ocfs_lock_res *lockres, int *status, __s16 node_num, int *inc_seq);
 static int ocfs_lock_busy(ocfs_super *osb, struct inode *inode, ocfs_lock_res *lockres);
@@ -593,7 +593,7 @@
 
 	vote_response = FLAG_VOTE_NODE;
 
-	if (ocfs_process_vote_pre_change_master(vote_type, flags, &vote_response, &status, inode))
+	if (ocfs_process_vote_pre_change_master(vote_type, flags, &vote_response, inode))
 		goto vote;
 
 	if (change_master) {
@@ -680,7 +680,7 @@
 
 /* Returns: 1 if process_vote should vote immediately, 0 otherwise */
 
-static int ocfs_process_vote_pre_change_master(int vote_type, int flags, int *vote_response, int *status, struct inode *inode)
+static int ocfs_process_vote_pre_change_master(int vote_type, int flags, int *vote_response, struct inode *inode)
 {
 	if (vote_type == DELETE_ACQUIRE) {
 		LOG_TRACE_STR("DELETE_ACQUIRE (part one)");
@@ -695,23 +695,18 @@
 		LOG_TRACE_STR("TRUNCATE_PAGES");
 		*vote_response = FLAG_VOTE_NODE;
 		if (inode) {
-			*status = ocfs_sync_inode(inode);
-			if (*status >= 0) {
-				ocfs_truncate_inode_pages(inode, 0);
-				down(&OCFS_I(inode)->ip_sem);
-				ocfs_extent_map_destroy(&OCFS_I(inode)->ip_ext_map);
-				ocfs_extent_map_init(&OCFS_I(inode)->ip_ext_map);
-				/* truncate may send this */
-				if (flags & FLAG_FILE_UPDATE_OIN)
-					atomic_set(&OCFS_I(inode)->ip_needs_verification, 1);
-				up(&OCFS_I(inode)->ip_sem);
-			} else {
-				// if this fails, it's an EIO
-				// should probably BUG
-				LOG_ERROR_STATUS(*status);
-				*vote_response = FLAG_VOTE_UPDATE_RETRY;
-				return 1;
+			if (ocfs_sync_inode(inode) < 0) {
+				LOG_ERROR_ARGS("sync inode failed for inode %lu!\n", inode->i_ino);
+				BUG();
 			}
+			ocfs_truncate_inode_pages(inode, 0);
+			down(&OCFS_I(inode)->ip_sem);
+			ocfs_extent_map_destroy(&OCFS_I(inode)->ip_ext_map);
+			ocfs_extent_map_init(&OCFS_I(inode)->ip_ext_map);
+			/* truncate may send this */
+			if (flags & FLAG_FILE_UPDATE_OIN)
+				atomic_set(&OCFS_I(inode)->ip_needs_verification, 1);
+			up(&OCFS_I(inode)->ip_sem);
 		}
 		return 0;
 	}



More information about the Ocfs2-commits mailing list