Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 658e9a6d authored by weiping zhang's avatar weiping zhang Committed by Martin K. Petersen
Browse files

scsi: sd: change allow_restart to bool in sysfs interface



/sys/class/scsi_disk/0:2:0:0/allow_restart can be changed to 0
unexpectedly by writing an invalid string such as the following:

echo asdf > /sys/class/scsi_disk/0:2:0:0/allow_restart

Signed-off-by: default avatarweiping zhang <zhangweiping@didichuxing.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent b8018b97
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -253,6 +253,7 @@ static ssize_t
allow_restart_store(struct device *dev, struct device_attribute *attr,
allow_restart_store(struct device *dev, struct device_attribute *attr,
		    const char *buf, size_t count)
		    const char *buf, size_t count)
{
{
	bool v;
	struct scsi_disk *sdkp = to_scsi_disk(dev);
	struct scsi_disk *sdkp = to_scsi_disk(dev);
	struct scsi_device *sdp = sdkp->device;
	struct scsi_device *sdp = sdkp->device;


@@ -262,7 +263,10 @@ allow_restart_store(struct device *dev, struct device_attribute *attr,
	if (sdp->type != TYPE_DISK && sdp->type != TYPE_ZBC)
	if (sdp->type != TYPE_DISK && sdp->type != TYPE_ZBC)
		return -EINVAL;
		return -EINVAL;


	sdp->allow_restart = simple_strtoul(buf, NULL, 10);
	if (kstrtobool(buf, &v))
		return -EINVAL;

	sdp->allow_restart = v;


	return count;
	return count;
}
}