mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-17 10:41:26 +00:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user