[ANNOUNCE] Linux-2.4.32-hf32.6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Last hotfix caused some regression : a recent patch caused 7 panics at
boot on Grant Coady's machines, I'm quickly releasing a new hotfix with
this patch reverted. I have restricted download permissions on previous
one (32.5) in order to avoid a large mess.

If you have already downloaded 32.5, please either apply he patch included
in this mail, or download plain 32.6 from the sites below.

Sorry for the inconvenience,
Willy

  hotfixes home : http://linux.exosec.net/kernel/2.4-hf/
   last version : http://linux.exosec.net/kernel/2.4-hf/LATEST/LATEST/
       RSS feed : http://linux.exosec.net/kernel/hf.xml
  build results : http://bugsplatter.mine.nu/test/linux-2.4/ (Grant's site)
            GIT : http://w.ods.org/kernel/2.4/patches-2.4-hf.git/
         GITWEB : http://w.ods.org/git/?p=patches-2.4-hf.git;a=summary


New kernel information :

   Version | New | Total
   --------+-----+------
    2.4.28 |   0 |  177 
    2.4.29 |   0 |  174 
    2.4.30 |   0 |  108 
    2.4.31 |   0 |   95 
    2.4.32 |   0 |   45 
   --------+-----+------

Changelog from 2.4.32-hf32.5 to 2.4.32-hf32.6
---------------------------------------
'+' = added ; '-' = removed

- 2.4.32-ext3-link-unlink-race-1                              (Vadim Egorov)

  7 panics at boot reported by Grant Coady. Looks like dentry->d_inode is
  NULL in vfs_unlink(). Reverting the patch for now.


--- linux-2.4.32-hf32.5/fs/namei.c	2006-05-26 17:17:08.000000000 +0200
+++ linux-2.4.32-hf32.6/fs/namei.c	2005-04-14 09:43:34.000000000 +0200
@@ -1479,7 +1479,7 @@
 {
 	int error;
 
-	double_down(&dir->i_zombie, &dentry->d_inode->i_zombie);
+	down(&dir->i_zombie);
 	error = may_delete(dir, dentry, 0);
 	if (!error) {
 		error = -EPERM;
@@ -1491,14 +1491,14 @@
 				lock_kernel();
 				error = dir->i_op->unlink(dir, dentry);
 				unlock_kernel();
+				if (!error)
+					d_delete(dentry);
 			}
 		}
 	}
-	double_up(&dir->i_zombie, &dentry->d_inode->i_zombie);
-	if (!error) {
-		d_delete(dentry);
+	up(&dir->i_zombie);
+	if (!error)
 		inode_dir_notify(dir, DN_DELETE);
-	}
 	return error;
 }
 
@@ -1607,21 +1607,20 @@
 	struct inode *inode;
 	int error;
 
+	down(&dir->i_zombie);
 	error = -ENOENT;
 	inode = old_dentry->d_inode;
 	if (!inode)
-		goto exit;
-
-	error = -EXDEV;
-	if (dir->i_dev != inode->i_dev)
-		goto exit;
-
-	double_down(&dir->i_zombie, &old_dentry->d_inode->i_zombie);
+		goto exit_lock;
 
 	error = may_create(dir, new_dentry);
 	if (error)
 		goto exit_lock;
 
+	error = -EXDEV;
+	if (dir->i_dev != inode->i_dev)
+		goto exit_lock;
+
 	/*
 	 * A link to an append-only or immutable file cannot be created.
 	 */
@@ -1637,10 +1636,9 @@
 	unlock_kernel();
 
 exit_lock:
-	double_up(&dir->i_zombie, &old_dentry->d_inode->i_zombie);
+	up(&dir->i_zombie);
 	if (!error)
 		inode_dir_notify(dir, DN_CREATE);
-exit:
 	return error;
 }
 

--

Willy Tarreau - http://w.ods.org/
PGP Fingerprint : 72C2 A394 02EA F546 BA6F  A7B1 E82C B631 848A 1004
EXOSEC - ZAC des Metz - 3 Rue du petit robinson - 78350 JOUY EN JOSAS
N°Indigo: 0 825 075 510 - Accueil: +33 1 72 89 72 30 - Fax: +33 1 72 89 80 19
Site web : http://www.exosec.fr/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux