target/user: Allow user to set block size before enabling device
authorSheng Yang <sheng@yasker.org>
Mon, 28 Dec 2015 19:57:39 +0000 (11:57 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 7 Jan 2016 21:57:51 +0000 (13:57 -0800)
The capability of setting hw_block_size was added along with 9c1cd1b68
"target/user: Only support full command pass-through", though default
setting override the user specified value during the enabling of device,
which called by target_configure_device() to set block_size matching
hw_block_size, result in user not able to set different block size other
than default 512.

This patch would use existing hw_block_size value if already set, otherwise
it would be set to default value(512).

Update: Fix the coding style issue.

(Drop unnecessary re-export of dev->dev_attrib.block_size - nab)

Signed-off-by: Sheng Yang <sheng@yasker.org>
Cc: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_user.c

index d5477c0..da187e6 100644 (file)
@@ -917,8 +917,10 @@ static int tcmu_configure_device(struct se_device *dev)
        if (ret)
                goto err_register;
 
+       /* User can set hw_block_size before enable the device */
+       if (dev->dev_attrib.hw_block_size == 0)
+               dev->dev_attrib.hw_block_size = 512;
        /* Other attributes can be configured in userspace */
-       dev->dev_attrib.hw_block_size = 512;
        dev->dev_attrib.hw_max_sectors = 128;
        dev->dev_attrib.hw_queue_depth = 128;