[Ocfs2-devel] Commenting patch for 1st time mount stuff

John L. Villalovos john.l.villalovos at intel.com
Wed Apr 21 18:20:17 CDT 2004


Redoing commenting patch with /* */ comments

Index: super.c
===================================================================
--- super.c	(revision 860)
+++ super.c	(working copy)
@@ -961,6 +961,8 @@
  	
  	osb->publ_map |= (1 << osb->node_num);
  	osb->vol_state = VOLUME_INIT;
+	/* Check if first time this partition has been mounted.  If so create
+	   the root Oracle INode. */
  	status = ocfs_create_root_oin (osb, NULL);
  	if (status >= 0)
  		osb->vol_state = VOLUME_ENABLED;
Index: oin.c
===================================================================
--- oin.c	(revision 860)
+++ oin.c	(working copy)
@@ -446,6 +446,11 @@

  /* ocfs_create_root_oin()
   *
+ * This function will create the root Oracle INode (OIN) on the file system if
+ * this is the first time that this partition has ever been mounted.
+ *
+ * If this is NOT the first time this partition has been mounted (meaning it
+ * has been mounted before) then this function does nothing.
   */
  int ocfs_create_root_oin (ocfs_super * osb, struct inode *root)
  {
@@ -459,7 +464,15 @@

  	LOG_ENTRY ();

+	/* Is this the first time this partition has been mounted? */
  	if (osb->vol_layout.root_start_off == 0) {
+		/* This is our first time being mounted.  We need to take care
+		 * of setting up the root Oracle inode.  In order to do this we
+		 * are going to call ocfs_create_root_dir_node.  So we need to
+		 * get the disk offset to the root directory (root_dirnode).
+		 * In order to get that we need to read in the volume header
+		 * from the first sector of the disk.  */
+
  		status = ocfs_wait_for_disk_lock_release (osb, OCFS_VOLUME_LOCK_OFFSET,
  						 10000, OCFS_DLM_NO_LOCK);
  		if (status < 0) {
@@ -471,12 +484,14 @@
  				     OCFS_DLM_EXCLUSIVE_LOCK, FLAG_FILE_CREATE,
  				     &lockres, &bh, NULL);
  		if (status >= 0) {
+			/* Read the volume header from the first sector of the
+			 * partition and put it into our buffer head */
  			status = ocfs_read_bh(osb, 0, &hdr_bh, 0, NULL);
  			if (status < 0)
  				LOG_ERROR_STATUS (status);

  			tmpstat = ocfs_release_lock (osb, OCFS_VOLUME_LOCK_OFFSET, OCFS_DLM_EXCLUSIVE_LOCK, 0, lockres, bh, NULL);
-	
+
  			if (bh)
  				brelse(bh);

@@ -492,7 +507,13 @@
  				LOG_ERROR_STATUS (status);
  			goto finally;
  		}
-		
+
+		/* Get the volume header data from our buffer head.  We need to
+		 * know the following in order to call
+		 * ocfs_create_root_dir_node():
+		 *      * root_off: disk offset to the ocfs root dirnode
+		 *        (root_directory)
+		 *      * internal_off: disk offset to the data segment */
  		volDiskHdr = (ocfs_vol_disk_hdr *) OCFS_BH_GET_DATA_READ(hdr_bh); /* read */
  		root_off = volDiskHdr->root_off;
  		int_off = volDiskHdr->internal_off;
@@ -502,10 +523,13 @@
  			ocfs_wait_for_disk_lock_release (osb,
  							OCFS_VOLUME_LOCK_OFFSET,
  							30000, OCFS_DLM_NO_LOCK);
+			/* Setup the root_start_off with the correct value so
+			 * that it will not run this function the next time the
+			 * filesystem is mounted.  */
  			osb->vol_layout.root_start_off = root_off;
  			osb->vol_layout.root_int_off = int_off;
  		}
-
+		/* Do all the work in creating our root directory */
  		status = ocfs_create_root_dir_node (osb);
  		if (status < 0) {
  			LOG_ERROR_STATUS (status);

-------------- next part --------------
Index: super.c
===================================================================
--- super.c	(revision 860)
+++ super.c	(working copy)
@@ -961,6 +961,8 @@
 	
 	osb->publ_map |= (1 << osb->node_num);
 	osb->vol_state = VOLUME_INIT;
+	/* Check if first time this partition has been mounted.  If so create
+	   the root Oracle INode. */
 	status = ocfs_create_root_oin (osb, NULL);
 	if (status >= 0)
 		osb->vol_state = VOLUME_ENABLED;
Index: oin.c
===================================================================
--- oin.c	(revision 860)
+++ oin.c	(working copy)
@@ -446,6 +446,11 @@
 
 /* ocfs_create_root_oin()
  *
+ * This function will create the root Oracle INode (OIN) on the file system if
+ * this is the first time that this partition has ever been mounted.
+ *
+ * If this is NOT the first time this partition has been mounted (meaning it
+ * has been mounted before) then this function does nothing.
  */
 int ocfs_create_root_oin (ocfs_super * osb, struct inode *root)
 {
@@ -459,7 +464,15 @@
 
 	LOG_ENTRY ();
 
+	/* Is this the first time this partition has been mounted? */
 	if (osb->vol_layout.root_start_off == 0) {
+		/* This is our first time being mounted.  We need to take care
+		 * of setting up the root Oracle inode.  In order to do this we
+		 * are going to call ocfs_create_root_dir_node.  So we need to
+		 * get the disk offset to the root directory (root_dirnode).
+		 * In order to get that we need to read in the volume header
+		 * from the first sector of the disk.  */
+
 		status = ocfs_wait_for_disk_lock_release (osb, OCFS_VOLUME_LOCK_OFFSET,
 						 10000, OCFS_DLM_NO_LOCK);
 		if (status < 0) {
@@ -471,12 +484,14 @@
 				     OCFS_DLM_EXCLUSIVE_LOCK, FLAG_FILE_CREATE,
 				     &lockres, &bh, NULL);
 		if (status >= 0) {
+			/* Read the volume header from the first sector of the
+			 * partition and put it into our buffer head */
 			status = ocfs_read_bh(osb, 0, &hdr_bh, 0, NULL);
 			if (status < 0)
 				LOG_ERROR_STATUS (status);
 
 			tmpstat = ocfs_release_lock (osb, OCFS_VOLUME_LOCK_OFFSET, OCFS_DLM_EXCLUSIVE_LOCK, 0, lockres, bh, NULL);
-	
+
 			if (bh)
 				brelse(bh);
 
@@ -492,7 +507,13 @@
 				LOG_ERROR_STATUS (status);
 			goto finally;
 		}
-		
+
+		/* Get the volume header data from our buffer head.  We need to
+		 * know the following in order to call
+		 * ocfs_create_root_dir_node():
+		 *      * root_off: disk offset to the ocfs root dirnode
+		 *        (root_directory)
+		 *      * internal_off: disk offset to the data segment */
 		volDiskHdr = (ocfs_vol_disk_hdr *) OCFS_BH_GET_DATA_READ(hdr_bh); /* read */
 		root_off = volDiskHdr->root_off;
 		int_off = volDiskHdr->internal_off;
@@ -502,10 +523,13 @@
 			ocfs_wait_for_disk_lock_release (osb,
 							OCFS_VOLUME_LOCK_OFFSET,
 							30000, OCFS_DLM_NO_LOCK);
+			/* Setup the root_start_off with the correct value so
+			 * that it will not run this function the next time the
+			 * filesystem is mounted.  */
 			osb->vol_layout.root_start_off = root_off;
 			osb->vol_layout.root_int_off = int_off;
 		}
-
+		/* Do all the work in creating our root directory */
 		status = ocfs_create_root_dir_node (osb);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);


More information about the Ocfs2-devel mailing list