Skip to contentSkip to conversation

New: Setro has no effect for SCSI device

Bug 198689 [email protected] 1 participant 2 messages Feb 6, 2018 SCSI

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=198689

Bug ID: 198689
Summary: Setro has no effect for SCSI device
Product: SCSI Drivers
Version: 2.5
Kernel Version: all
Hardware: All
OS: Linux
Tree: Mainline
Status: NEW
Severity: high
Priority: P1
Component: AACRAID
Assignee: [email protected]
Reporter: [email protected]
Regression: No

Hi,
We found a problem when using SCSI device.

Setting the read-only attribute to scsi disk by calling "ioctl(fd, BLKROSET, &ro)"
only block the first write operation.

In detail:
1: set ioctl(fd, BLKROSET, &ro)
2: dd to the block device(as /dev/sdc), write failed 3: dd to the block device again, write successed

Above operation can be reproduced by following script:

#! /bin/bash
DEV=$1
[[ "$DEV" =~ ^/dev/sd ]] || echo "Need a scsi device to reproduce" blockdev --setro $DEV
echo $DEV getro is [ $(blockdev --getro $DEV) ]
dd if=/dev/zero of=$DEV count=1
echo $DEV getro is [ $(blockdev --getro $1) ]
dd if=/dev/zero of=$DEV count=1

Environment:
- Kernel: ALL
We reproduced this problem in following kernel version: 4.15 4.10, 3.10. And by reference source, we think the problem exist in all versions.
- Driver: SCSI
it exists only when using SCSI disks, and xen-blk,virtio-blk do not have such
a
problem

Here is a test result:

# uname -r
4.15.0+
# ./reproduce.sh /dev/sda
/dev/sda getro is [ 1 ]
dd: writing to ‘/dev/sda’: Operation not permitted
1+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000258806 s, 0.0 kB/s
/dev/sda getro is [ 0 ]
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000321595 s, 1.6 MB/s

---

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.