scst: Log a warning if the block size is modified

A block size change is an important change so log such changes.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6194 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Vladislav Bolkhovitin
2015-05-01 23:52:51 +00:00
parent b59ce01ead
commit a3f8a4eff1
4 changed files with 40 additions and 22 deletions

View File

@@ -177,15 +177,20 @@ out:
static void cdrom_set_block_shift(struct scst_cmd *cmd, int block_shift)
{
struct scst_device *dev = cmd->dev;
int new_block_shift;
/*
* No need for locks here, since *_detach() can not be
* called, when there are existing commands.
*/
if (block_shift != 0)
dev->block_shift = block_shift;
else
dev->block_shift = CDROM_DEF_BLOCK_SHIFT;
dev->block_size = 1 << dev->block_shift;
new_block_shift = block_shift ? : CDROM_DEF_BLOCK_SHIFT;
if (dev->block_shift != new_block_shift) {
PRINT_INFO("%s: Changed block shift from %d into %d / %d",
dev->virt_name, dev->block_shift, block_shift,
new_block_shift);
dev->block_shift = new_block_shift;
dev->block_size = 1 << dev->block_shift;
}
return;
}

View File

@@ -269,15 +269,20 @@ out:
static void disk_set_block_shift(struct scst_cmd *cmd, int block_shift)
{
struct scst_device *dev = cmd->dev;
int new_block_shift;
/*
* No need for locks here, since *_detach() can not be
* called, when there are existing commands.
*/
if (block_shift != 0)
dev->block_shift = block_shift;
else
dev->block_shift = DISK_DEF_BLOCK_SHIFT;
dev->block_size = 1 << dev->block_shift;
new_block_shift = block_shift ? : DISK_DEF_BLOCK_SHIFT;
if (dev->block_shift != new_block_shift) {
PRINT_INFO("%s: Changed block shift from %d into %d / %d",
dev->virt_name, dev->block_shift, block_shift,
new_block_shift);
dev->block_shift = new_block_shift;
dev->block_size = 1 << dev->block_shift;
}
return;
}

View File

@@ -276,15 +276,20 @@ out:
static void modisk_set_block_shift(struct scst_cmd *cmd, int block_shift)
{
struct scst_device *dev = cmd->dev;
int new_block_shift;
/*
* No need for locks here, since *_detach() can not be
* called, when there are existing commands.
*/
if (block_shift != 0)
dev->block_shift = block_shift;
else
dev->block_shift = MODISK_DEF_BLOCK_SHIFT;
dev->block_size = 1 << dev->block_shift;
new_block_shift = block_shift ? : MODISK_DEF_BLOCK_SHIFT;
if (dev->block_shift != new_block_shift) {
PRINT_INFO("%s: Changed block shift from %d into %d / %d",
dev->virt_name, dev->block_shift, block_shift,
new_block_shift);
dev->block_shift = new_block_shift;
dev->block_size = 1 << dev->block_shift;
}
return;
}

View File

@@ -1020,6 +1020,8 @@ out_reply:
static void dev_user_set_block_shift(struct scst_cmd *cmd, int block_shift)
{
struct scst_device *dev = cmd->dev;
struct scst_user_dev *udev = cmd->dev->dh_priv;
int new_block_shift;
TRACE_ENTRY();
@@ -1027,14 +1029,15 @@ static void dev_user_set_block_shift(struct scst_cmd *cmd, int block_shift)
* No need for locks here, since *_detach() can not be
* called, when there are existing commands.
*/
TRACE_DBG("dev %p, new block shift %d", dev, block_shift);
if (block_shift != 0)
dev->block_shift = block_shift;
else {
struct scst_user_dev *udev = cmd->dev->dh_priv;
dev->block_shift = scst_calc_block_shift(udev->def_block_size);
new_block_shift = block_shift ? :
scst_calc_block_shift(udev->def_block_size);
if (dev->block_shift != new_block_shift) {
PRINT_INFO("%s: Changed block shift from %d into %d / %d",
dev->virt_name, dev->block_shift, block_shift,
new_block_shift);
dev->block_shift = new_block_shift;
dev->block_size = 1 << dev->block_shift;
}
dev->block_size = 1 << dev->block_shift;
TRACE_EXIT();
return;