<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">---

 drivers/block/floppy.c   |    3 +--
 drivers/block/floppy98.c |    3 +--
 fs/block_dev.c           |   10 +++++-----
 3 files changed, 7 insertions(+), 9 deletions(-)

diff -puN drivers/block/floppy98.c~RD1-open-mm drivers/block/floppy98.c
--- 25/drivers/block/floppy98.c~RD1-open-mm	2004-01-07 19:05:47.000000000 -0800
+++ 25-akpm/drivers/block/floppy98.c	2004-01-07 19:05:47.000000000 -0800
@@ -3859,8 +3859,7 @@ static int floppy_open(struct inode * in
 	/* Allow ioctls if we have write-permissions even if read-only open.
 	 * Needed so that programs such as fdrawcmd still can work on write
 	 * protected disks */
-	if ((filp-&gt;f_mode &amp; 2) || 
-	    (inode-&gt;i_sb &amp;&amp; (permission(inode,2) == 0)))
+	if (filp-&gt;f_mode &amp; 2 || permission(filp-&gt;f_dentry-&gt;d_inode,2,NULL) == 0)
 	    filp-&gt;private_data = (void*) 8;
 
 	if (UFDCS-&gt;rawcmd == 1)
diff -puN drivers/block/floppy.c~RD1-open-mm drivers/block/floppy.c
--- 25/drivers/block/floppy.c~RD1-open-mm	2004-01-07 19:05:47.000000000 -0800
+++ 25-akpm/drivers/block/floppy.c	2004-01-07 19:05:47.000000000 -0800
@@ -3784,8 +3784,7 @@ static int floppy_open(struct inode * in
 	/* Allow ioctls if we have write-permissions even if read-only open.
 	 * Needed so that programs such as fdrawcmd still can work on write
 	 * protected disks */
-	if ((filp-&gt;f_mode &amp; 2) || 
-	    (inode-&gt;i_sb &amp;&amp; (permission(inode,2, NULL) == 0)))
+	if (filp-&gt;f_mode &amp; 2 || permission(filp-&gt;f_dentry-&gt;d_inode,2,NULL) == 0)
 	    filp-&gt;private_data = (void*) 8;
 
 	if (UFDCS-&gt;rawcmd == 1)
diff -puN fs/block_dev.c~RD1-open-mm fs/block_dev.c
--- 25/fs/block_dev.c~RD1-open-mm	2004-01-07 19:05:47.000000000 -0800
+++ 25-akpm/fs/block_dev.c	2004-01-07 19:05:47.000000000 -0800
@@ -531,7 +531,7 @@ static void bd_set_size(struct block_dev
 	bdev-&gt;bd_inode-&gt;i_blkbits = blksize_bits(bsize);
 }
 
-static int do_open(struct block_device *bdev, struct inode *inode, struct file *file)
+static int do_open(struct block_device *bdev, struct file *file)
 {
 	struct module *owner = NULL;
 	struct gendisk *disk;
@@ -554,7 +554,7 @@ static int do_open(struct block_device *
 		if (!part) {
 			struct backing_dev_info *bdi;
 			if (disk-&gt;fops-&gt;open) {
-				ret = disk-&gt;fops-&gt;open(inode, file);
+				ret = disk-&gt;fops-&gt;open(bdev-&gt;bd_inode, file);
 				if (ret)
 					goto out_first;
 			}
@@ -599,7 +599,7 @@ static int do_open(struct block_device *
 		module_put(owner);
 		if (bdev-&gt;bd_contains == bdev) {
 			if (bdev-&gt;bd_disk-&gt;fops-&gt;open) {
-				ret = bdev-&gt;bd_disk-&gt;fops-&gt;open(inode, file);
+				ret = bdev-&gt;bd_disk-&gt;fops-&gt;open(bdev-&gt;bd_inode, file);
 				if (ret)
 					goto out;
 			}
@@ -647,7 +647,7 @@ int blkdev_get(struct block_device *bdev
 	fake_file.f_dentry = &amp;fake_dentry;
 	fake_dentry.d_inode = bdev-&gt;bd_inode;
 
-	return do_open(bdev, bdev-&gt;bd_inode, &amp;fake_file);
+	return do_open(bdev, &amp;fake_file);
 }
 
 EXPORT_SYMBOL(blkdev_get);
@@ -668,7 +668,7 @@ int blkdev_open(struct inode * inode, st
 	bd_acquire(inode);
 	bdev = inode-&gt;i_bdev;
 
-	res = do_open(bdev, inode, filp);
+	res = do_open(bdev, filp);
 	if (res)
 		return res;
 

_
</pre></body></html>