[Ocfs2-tools-commits] zab commits r897 - trunk/libocfs2

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Wed May 18 17:15:03 CDT 2005


Author: zab
Date: 2005-05-18 17:15:01 -0500 (Wed, 18 May 2005)
New Revision: 897

Modified:
   trunk/libocfs2/alloc.c
Log:
o teach ocfs2_delete_inode() to understand the magically delicious -1
  di->i_suballoc_node which directs it to the global system allocator.


Modified: trunk/libocfs2/alloc.c
===================================================================
--- trunk/libocfs2/alloc.c	2005-05-18 04:08:42 UTC (rev 896)
+++ trunk/libocfs2/alloc.c	2005-05-18 22:15:01 UTC (rev 897)
@@ -277,6 +277,7 @@
 	char *buf;
 	ocfs2_dinode *di;
 	int node;
+	ocfs2_cached_inode **inode_alloc;
 
 	ret = ocfs2_malloc_block(fs->fs_io, &buf);
 	if (ret)
@@ -288,14 +289,17 @@
 	di = (ocfs2_dinode *)buf;
 	node = di->i_suballoc_node;
 
-	ret = ocfs2_load_allocator(fs, INODE_ALLOC_SYSTEM_INODE,
-				   node,
-				   &fs->fs_inode_allocs[node]);
+	if (node == -1)
+		inode_alloc = &fs->fs_system_inode_alloc;
+	else
+		inode_alloc = &fs->fs_inode_allocs[node];
+
+	ret = ocfs2_load_allocator(fs, INODE_ALLOC_SYSTEM_INODE, node,
+				   inode_alloc);
 	if (ret)
 		goto out;
 
-	ret = ocfs2_chain_free_with_io(fs, fs->fs_inode_allocs[node],
-				       ino);
+	ret = ocfs2_chain_free_with_io(fs, *inode_alloc, ino);
 	if (ret)
 		goto out;
 



More information about the Ocfs2-tools-commits mailing list