diff --git a/ldiskfs/ChangeLog b/ldiskfs/ChangeLog
index 484e1a93fe7af4af70db5639cdacc349d81c3b7d..1e27ceaa62f078ca00625677f6be7c8f5b776146 100644
--- a/ldiskfs/ChangeLog
+++ b/ldiskfs/ChangeLog
@@ -1,3 +1,10 @@
 tbd         Cluster File Systems, Inc. <info@clusterfs.com>
        * version 3.0.0
        * Initial release of ldiskfs as a separate package.
+
+Severity   : normal
+Frequency  : rare
+Bugzilla   : 12415
+Description: Updated patchess for new RHEL4 kernel
+Details    : Add patch ext3-unlink-race.patch
+	     Updated series file ldiskfs-2.6-rhel4.series
diff --git a/ldiskfs/kernel_patches/patches/ext3-unlink-race.patch b/ldiskfs/kernel_patches/patches/ext3-unlink-race.patch
new file mode 100644
index 0000000000000000000000000000000000000000..96727664fae3c966021e707128fc21024e5af426
--- /dev/null
+++ b/ldiskfs/kernel_patches/patches/ext3-unlink-race.patch
@@ -0,0 +1,15 @@
+Index: lustre+chaos/lustre/ldiskfs/namei.c
+===================================================================
+--- linux-2.6.5-7.283-full.orig/fs/ext3/namei.c
++++ linux-2.6.5-7.283-full/fs/ext3/namei.c
+@@ -2184,8 +2184,8 @@ static int ldiskfs_link (struct dentry *
+	 * Return -ENOENT if we've raced with unlink and i_nlink is 0.  Doing
+	 * otherwise has the potential to corrupt the orphan inode list.
+	 */
+-	if (inode->i_nlink == 0)
+-		return -ENOENT;
++	//if (inode->i_nlink == 0)
++	//	return -ENOENT;
+ 
+ retry:
+	handle = ldiskfs_journal_start(dir, LDISKFS_DATA_TRANS_BLOCKS +
diff --git a/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel4.series b/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel4.series
index afbd3b8e3505ff4756373d0dd0d60257640c321f..bbb7b56462c5cfa027e897670d7f2165c83c135a 100644
--- a/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel4.series
+++ b/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel4.series
@@ -19,3 +19,4 @@ ext3-sector_t-overflow-2.6.9-rhel4.patch
 ext3-check-jbd-errors-2.6.9.patch
 ext3-uninit-2.6.9.patch
 ext3-nanosecond-2.6-rhel4.patch
+ext3-unlink-race.patch