public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 2.5 INITRD + DEVFS crash
@ 2003-01-04  4:12 Herbert Xu
  2003-01-04  4:25 ` Jeff Garzik
  0 siblings, 1 reply; 2+ messages in thread
From: Herbert Xu @ 2003-01-04  4:12 UTC (permalink / raw)
  To: viro; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 415 bytes --]

INITRD loading fails when DEVFS is enabled in the kernel as initrd_release
calls del_gendisk which tries to free DEVFS partitions even though the
create partitions function was never called.
-- 
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email:  Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

[-- Attachment #2: p --]
[-- Type: text/plain, Size: 683 bytes --]

Index: fs/partitions/check.c
===================================================================
RCS file: /home/gondolin/herbert/src/CVS/debian/kernel-source-2.5/fs/partitions/check.c,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 check.c
--- fs/partitions/check.c	3 Jan 2003 01:36:55 -0000	1.1.1.3
+++ fs/partitions/check.c	4 Jan 2003 04:04:05 -0000
@@ -522,7 +522,8 @@
 	disk->io_ticks = 0;
 	disk->time_in_queue = 0;
 	disk->stamp = disk->stamp_idle = 0;
-	devfs_remove_partitions(disk);
+	if (disk->minors != 1)
+		devfs_remove_partitions(disk);
 	if (disk->driverfs_dev) {
 		sysfs_remove_link(&disk->kobj, "device");
 		sysfs_remove_link(&disk->driverfs_dev->kobj, "block");

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] 2.5 INITRD + DEVFS crash
  2003-01-04  4:12 [PATCH] 2.5 INITRD + DEVFS crash Herbert Xu
@ 2003-01-04  4:25 ` Jeff Garzik
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Garzik @ 2003-01-04  4:25 UTC (permalink / raw)
  To: Herbert Xu; +Cc: viro, linux-kernel

Herbert Xu wrote:
> INITRD loading fails when DEVFS is enabled in the kernel as initrd_release
> calls del_gendisk which tries to free DEVFS partitions even though the
> create partitions function was never called.
[...]
> --- fs/partitions/check.c	3 Jan 2003 01:36:55 -0000	1.1.1.3
> +++ fs/partitions/check.c	4 Jan 2003 04:04:05 -0000
> @@ -522,7 +522,8 @@
>  	disk->io_ticks = 0;
>  	disk->time_in_queue = 0;
>  	disk->stamp = disk->stamp_idle = 0;
> -	devfs_remove_partitions(disk);
> +	if (disk->minors != 1)
> +		devfs_remove_partitions(disk);
>  	if (disk->driverfs_dev) {
>  		sysfs_remove_link(&disk->kobj, "device");
>  		sysfs_remove_link(&disk->driverfs_dev->kobj, "block");


hmmmm.   I'm not disputing the problem, but your solution sorta says to 
me that there is a reference counting problem elsewhere.  [disclaimer: 
random guess]  Maybe the initrd+devfs needs an additional reference 
increment somewhere?


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-01-04  4:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-04  4:12 [PATCH] 2.5 INITRD + DEVFS crash Herbert Xu
2003-01-04  4:25 ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox