- remove-bdput-from-do_open-in-fs-block_devc.patch removed from -mm tree

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

 



The patch titled
     Remove bdput from do_open() in fs/block_dev.c
has been removed from the -mm tree.  Its filename was
     remove-bdput-from-do_open-in-fs-block_devc.patch

This patch was dropped because it was nacked

------------------------------------------------------
Subject: Remove bdput from do_open() in fs/block_dev.c
From: Rafa³ Bilski <rafalbilski@xxxxxxxxxx>

I mistyped
# echo /dev/hdc1 >/sys/module/block2mtd/parameters/block2mt
instead of sdc1. There is no /dev/hdc1. I have DVD-ROM as /dev/hdc.
# dmesg
block2mtd: version $Revision: 1.30 $
block2mtd: error: cannot open device /dev/hdc1
Looks right, but tray is locked. And it doesn't want to get out.
# eject
hdc: irq timeout: status=0xd0 { Busy }
ide: failed opcode was: unknown
WARNING: at kernel/irq/resend.c:70 check_irq_resend()
 [<c013444b>] check_irq_resend+0xab/0xc0
 [<c0133e2a>] enable_irq+0x4a/0xa0
 [<c02c26e7>] ide_error+0x47/0xa0
 [<c02d1e60>] cdrom_newpc_intr+0x0/0x300
 [<c02c2bc0>] ide_timer_expiry+0x1e0/0x2d0
 [<c02c29e0>] ide_timer_expiry+0x0/0x2d0
 [<c011b986>] run_timer_softirq+0x116/0x160
 [<c0127e75>] hrtimer_interrupt+0x165/0x1a0
 [<c0118772>] __do_softirq+0x42/0x90
 [<c01187e6>] do_softirq+0x26/0x30
 [<c0118aaa>] irq_exit+0x5a/0x60
 [<c0104817>] do_IRQ+0x47/0x80
 [<c0102c23>] common_interrupt+0x23/0x30
 [<c0281a46>] acpi_processor_idle+0x162/0x380
 [<c0100d0e>] cpu_idle+0x4e/0x70
 [<c0524ac5>] start_kernel+0x1f5/0x240
 [<c05243a0>] unknown_bootoption+0x0/0x1e0
 =======================

Removing bdput from do_open() in fs/block_dev.c seems to be a cure for irq
timeout.

[akpm@xxxxxxxxxxxxxxxxxxxx: Fix up blkdev_open() error-path refcounting]
Signed-off-by: Rafa³ Bilski <rafalbilski@xxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 fs/block_dev.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff -puN fs/block_dev.c~remove-bdput-from-do_open-in-fs-block_devc fs/block_dev.c
--- a/fs/block_dev.c~remove-bdput-from-do_open-in-fs-block_devc
+++ a/fs/block_dev.c
@@ -1120,7 +1120,6 @@ static int do_open(struct block_device *
 	disk = get_gendisk(bdev->bd_dev, &part);
 	if (!disk) {
 		unlock_kernel();
-		bdput(bdev);
 		return ret;
 	}
 	owner = disk->fops->owner;
@@ -1247,8 +1246,10 @@ static int blkdev_open(struct inode * in
 		return -ENOMEM;
 
 	res = do_open(bdev, filp, 0);
-	if (res)
+	if (res) {
+		bdput(bdev);
 		return res;
+	}
 
 	if (!(filp->f_flags & O_EXCL) )
 		return 0;
_

Patches currently in -mm which might be from rafalbilski@xxxxxxxxxx are

remove-bdput-from-do_open-in-fs-block_devc.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux