diff options
| author | Georgios Toptsidis <gtoptsid@gmail.com> | 2015-09-25 10:50:08 +0300 |
|---|---|---|
| committer | Jiri Slaby <jslaby@suse.cz> | 2016-01-05 18:36:52 +0100 |
| commit | 9dbf193515f84e8674a4833af94a247f414eb8c4 (patch) | |
| tree | d866a4cecaf8ad99073b4c0ef7c88b6186d55810 | |
| parent | fd67b1aadc1b9e4f43d7bdadbf66bc0ccc69911f (diff) | |
| download | linux-9dbf193515f84e8674a4833af94a247f414eb8c4.tar.gz linux-9dbf193515f84e8674a4833af94a247f414eb8c4.tar.bz2 linux-9dbf193515f84e8674a4833af94a247f414eb8c4.zip | |
cdrom: Random writing support for BD-RE media
commit f7e7868b4743f1cc5e59e6e0ddd3ccf9cfe53a1b upstream.
Recently, i bought a blu-ray writer and noticed that while cdrecord
worked perfectly, random writing didn't work on rewritable bd-re media.
For example, dd if=/dev/zero of=/dev/sr0 bs=32768 count=2 gave the usual
"read-only file system" message.
After checking if the problem lies with my burner or firmware, i grep-ed
the kernel source for EROFS. One of the results was in the cdrom driver.
I tried to follow the function chain and ended in the cdrom_is_dvd_rw
function where writing is permitted only for DVD-RAM and DVD+RW media.
I added a new case label for 0x43 which is the profile name of BD-RE
and now it works correctly for BD-RE too.
Maybe there is a better way of implementing this, like a new function
checking for blu-ray support and called from cdrom_open_write like
it happens for mrw and dvdram media, but adding the case label worked.
Thank you for your time.
Signed-off-by: Jens Axboe <axboe@fb.com>
Cc: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
| -rw-r--r-- | drivers/cdrom/cdrom.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index 8a3aff724d98..fb9277e36b57 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c @@ -870,6 +870,7 @@ static int cdrom_is_dvd_rw(struct cdrom_device_info *cdi) switch (cdi->mmc3_profile) { case 0x12: /* DVD-RAM */ case 0x1A: /* DVD+RW */ + case 0x43: /* BD-RE */ return 0; default: return 1; |
