[Ocfs2-commits] mfasheh commits r1274 - trunk/src

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Thu Jul 15 17:13:27 CDT 2004


Author: mfasheh
Date: 2004-07-15 16:13:26 -0500 (Thu, 15 Jul 2004)
New Revision: 1274

Modified:
   trunk/src/alloc.c
Log:
* step three in speeding up delete -- freeing bits are no longer
  checkpointed



Modified: trunk/src/alloc.c
===================================================================
--- trunk/src/alloc.c	2004-07-15 21:09:10 UTC (rev 1273)
+++ trunk/src/alloc.c	2004-07-15 21:13:26 UTC (rev 1274)
@@ -347,6 +347,8 @@
 		LOG_ERROR_STATUS(status);
 		goto finally;
 	}
+	ocfs_handle_set_checkpoint(handle, 0);
+	ocfs_handle_set_sync(handle, 0);
 
 	/* Get all the locks we need. do global bitmap last to
 	 * preserve lock ordering with extend/create */
@@ -373,6 +375,9 @@
 					LOG_ERROR_STATUS (status);
 				goto abort;
 			}
+			ocfs_handle_add_lock(handle, OCFS_LKM_EXMODE, 
+					     FLAG_FILE_CREATE, NULL, 
+					     inode_alloc_inode[i], 1);
 		}
 	}
 
@@ -399,6 +404,9 @@
 					LOG_ERROR_STATUS (status);
 				goto abort;
 			}
+			ocfs_handle_add_lock(handle, OCFS_LKM_EXMODE, 
+					     FLAG_FILE_CREATE, NULL, 
+					     ext_alloc_inode[i], 1);
 		}
 	}
 
@@ -422,6 +430,9 @@
 				LOG_ERROR_STATUS (status);
 			goto abort;
 		}
+		ocfs_handle_add_lock(handle, OCFS_LKM_EXMODE, 
+				     FLAG_FILE_CREATE, globalbh, 
+				     vol_inode, 1);
 	}
 
 	/* free vol block */
@@ -469,46 +480,6 @@
 	if (handle)
 		ocfs_abort_trans(handle);
 
-	if (vol_inode) {
-		down_write(&OCFS_I(vol_inode)->ip_io_sem);
-		status = ocfs_release_lock(osb, OCFS_LKM_EXMODE,
-					   FLAG_FILE_CREATE, globalbh, 
-					   vol_inode);
-		up_write(&OCFS_I(vol_inode)->ip_io_sem);
-		if (status < 0) {
-			LOG_ERROR_STATUS (status);
-			goto finally;
-		}
-	}
-
-	for (i = 0; i < osb->max_nodes; i++) {
-		if (inode_alloc_free[i] != NULL) {
-			down_write(&OCFS_I(inode_alloc_inode[i])->ip_io_sem);
-			status = ocfs_release_lock (osb,
-						    OCFS_LKM_EXMODE,
-						    FLAG_FILE_CREATE,
-						    NULL, inode_alloc_inode[i]);
-			up_write(&OCFS_I(inode_alloc_inode[i])->ip_io_sem);
-			if (status < 0) {
-				LOG_ERROR_STATUS (status);
-				goto finally;
-			}
-		}
-
-		if (ext_alloc_free[i] != NULL) {
-			down_write(&OCFS_I(ext_alloc_inode[i])->ip_io_sem);
-			status = ocfs_release_lock (osb,
-						    OCFS_LKM_EXMODE,
-						    FLAG_FILE_CREATE,
-						    NULL, ext_alloc_inode[i]);
-			up_write(&OCFS_I(ext_alloc_inode[i])->ip_io_sem);
-			if (status < 0) {
-				LOG_ERROR_STATUS (status);
-				goto finally;
-			}
-		}
-	}
-
 finally:
 	if (inode_alloc_inode) {
 		for (i = 0; i < osb->max_nodes; i++) {



More information about the Ocfs2-commits mailing list