scsi: fcoe: catch invalid values for the 'enabled' attribute
The 'enabled' sysfs attribute only accepts the values '0' and '1', so we should error out any other values. Signed-off-by: Hannes Reinecke <hare@suse.com> Acked-by: Johannes Thumshirn <jth@kernel.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
c216e8762f
Коммит
5cc5512690
|
@ -335,16 +335,24 @@ static ssize_t store_ctlr_enabled(struct device *dev,
|
|||
const char *buf, size_t count)
|
||||
{
|
||||
struct fcoe_ctlr_device *ctlr = dev_to_ctlr(dev);
|
||||
bool enabled;
|
||||
int rc;
|
||||
|
||||
if (*buf == '1')
|
||||
enabled = true;
|
||||
else if (*buf == '0')
|
||||
enabled = false;
|
||||
else
|
||||
return -EINVAL;
|
||||
|
||||
switch (ctlr->enabled) {
|
||||
case FCOE_CTLR_ENABLED:
|
||||
if (*buf == '1')
|
||||
if (enabled)
|
||||
return count;
|
||||
ctlr->enabled = FCOE_CTLR_DISABLED;
|
||||
break;
|
||||
case FCOE_CTLR_DISABLED:
|
||||
if (*buf == '0')
|
||||
if (!enabled)
|
||||
return count;
|
||||
ctlr->enabled = FCOE_CTLR_ENABLED;
|
||||
break;
|
||||
|
|
Загрузка…
Ссылка в новой задаче