Commit 88baf3e8 authored by Jon Masters's avatar Jon Masters Committed by Linus Torvalds
Browse files

[PATCH] fix floppy.c to store correct ro/rw status in underlying gendisk

Evgeny Stambulchik found that doing the following always worked:

# mount /dev/fd0 /mnt/floppy/
mount: block device /dev/fd0 is write-protected, mounting read-only
# mount -o remount,rw /mnt/floppy
# echo $?

This is the case because the block device /dev/fd0 is writeable but the
floppy disk is marked protected.  A fix is to simply have floppy_open mark
the underlying gendisk policy according to reality (since the VFS doesn't
provide a way for do_remount_sb to inquire as to the current device
Signed-off-by: default avatarJon Masters <>
Cc: Al Viro <>
Cc: Christoph Hellwig <>
Signed-off-by: default avatarAndrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent 4448aaf0
......@@ -3714,6 +3714,12 @@ static int floppy_open(struct inode *inode, struct file *filp)
/* set underlying gendisk policy to reflect real ro/rw status */
inode->i_bdev->bd_disk->policy = 0;
inode->i_bdev->bd_disk->policy = 1;
if (UDRS->fd_ref == -1 || (UDRS->fd_ref && (filp->f_flags & O_EXCL)))
goto out2;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment