[Ocfs2-commits] manish commits r2436 - in trunk: . patches

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Jun 28 16:08:11 CDT 2005


Author: manish
Signed-off-by: mfasheh
Date: 2005-06-27 15:41:57 -0500 (Mon, 27 Jun 2005)
New Revision: 2436

Added:
   trunk/patches/
   trunk/patches/export_generic_drop_inode.patch
Modified:
   trunk/Makefile
   trunk/configure.in
Log:
Error out if the kernel we're building against doesn't have generic_drop_inode
exported. Distribute the patch so people can fix their kernels.

Signed-off-by: mfasheh


Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2005-06-27 20:41:03 UTC (rev 2435)
+++ trunk/Makefile	2005-06-27 20:41:57 UTC (rev 2436)
@@ -15,6 +15,9 @@
 	kapi-compat/include/kref_init.h				\
 	kapi-compat/include/kref_put.h
 
+PATCH_FILES = \
+	patches/export_generic_drop_inode.patch
+
 DIST_FILES = \
 	AUTHORS			\
 	COPYING			\
@@ -30,13 +33,15 @@
 	mkinstalldirs		\
 	rpmarch.guess		\
 	$(LINUX_INCLUDE_FILES)	\
-	$(KAPI_COMPAT_FILES)
+	$(KAPI_COMPAT_FILES)	\
+	$(PATCH_FILES)
 
 DIST_RULES = dist-subdircreate
 
 dist-subdircreate:
 	$(TOPDIR)/mkinstalldirs $(DIST_DIR)/include/linux
 	$(TOPDIR)/mkinstalldirs $(DIST_DIR)/kapi-compat/include
+	$(TOPDIR)/mkinstalldirs $(DIST_DIR)/patches
 
 #
 # RHEL4

Modified: trunk/configure.in
===================================================================
--- trunk/configure.in	2005-06-27 20:41:03 UTC (rev 2435)
+++ trunk/configure.in	2005-06-27 20:41:57 UTC (rev 2436)
@@ -208,6 +208,14 @@
 fi
 AC_SUBST(ARCH_XEN)
 
+OCFS2_CHECK_KERNEL(generic_drop_inode, fs.h,
+  have_generic_drop_inode=yes, have_generic_drop_inode=no)
+if test "x$have_generic_drop_inode" != "xyes"; then
+  AC_MSG_ERROR([Kernel does not have generic_drop_inode exported.
+You can apply patches/export_generic_drop_inode.patch to your kernel tree
+and rebuild the kernel to build and use OCFS2.])
+fi
+
 MISSING_SOCK_CREATE_LITE=
 OCFS2_CHECK_KERNEL(sock_create_lite, net.h,, MISSING_SOCK_CREATE_LITE=yes)
 AC_SUBST(MISSING_SOCK_CREATE_LITE)

Added: trunk/patches/export_generic_drop_inode.patch
===================================================================
--- trunk/patches/export_generic_drop_inode.patch	2005-06-27 20:41:03 UTC (rev 2435)
+++ trunk/patches/export_generic_drop_inode.patch	2005-06-27 20:41:57 UTC (rev 2436)
@@ -0,0 +1,32 @@
+diff -ruN linux-2.6.12.old/fs/inode.c linux-2.6.12/fs/inode.c
+--- linux-2.6.12.old/fs/inode.c	2005-06-17 12:48:29.000000000 -0700
++++ linux-2.6.12/fs/inode.c	2005-06-24 00:12:29.998954118 -0700
+@@ -1048,7 +1048,7 @@
+  * inode when the usage count drops to zero, and
+  * i_nlink is zero.
+  */
+-static void generic_drop_inode(struct inode *inode)
++void generic_drop_inode(struct inode *inode)
+ {
+ 	if (!inode->i_nlink)
+ 		generic_delete_inode(inode);
+@@ -1056,6 +1056,8 @@
+ 		generic_forget_inode(inode);
+ }
+ 
++EXPORT_SYMBOL_GPL(generic_drop_inode);
++
+ /*
+  * Called when we're dropping the last reference
+  * to an inode. 
+diff -ruN linux-2.6.12.old/include/linux/fs.h linux-2.6.12/include/linux/fs.h
+--- linux-2.6.12.old/include/linux/fs.h	2005-06-17 12:48:29.000000000 -0700
++++ linux-2.6.12/include/linux/fs.h	2005-06-24 00:12:30.054955934 -0700
+@@ -1411,6 +1411,7 @@
+ extern ino_t iunique(struct super_block *, ino_t);
+ extern int inode_needs_sync(struct inode *inode);
+ extern void generic_delete_inode(struct inode *inode);
++extern void generic_drop_inode(struct inode *inode);
+ 
+ extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
+ 		int (*test)(struct inode *, void *), void *data);



More information about the Ocfs2-commits mailing list