]> git.baikalelectronics.ru Git - kernel.git/commit
target: Refactor MODE SENSE emulation
authorRoland Dreier <roland@purestorage.com>
Wed, 31 Oct 2012 16:16:48 +0000 (09:16 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 7 Nov 2012 04:55:46 +0000 (20:55 -0800)
commitbee7e4a9b9ca93d7e277ec28acbac4e6124e6f5e
treef1bd32ea59f0b69ac1d1c028912d42514196d013
parent23a3ef9486ff4d55445b8ce910108ff90da47754
target: Refactor MODE SENSE emulation

Convert spc_emulate_modesense() to use a table of mode pages, rather
than a switch statement.  This makes it possible to add more pages
sanely -- in particular we no longer need to make sure we keep the
0x3f (return all mode pages) case in sync.

While we're touching this code, make our MODE SENSE emulation a bit
better in a couple of ways:
 - When the initiator passes PC == 1 asking for changeable values,
   return all 0s to show we don't support setting anything.
 - Return a block descriptor for disk devices.

(nab: fix up device attribute references to use dev->dev_attrib
      in for-next code)

Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_spc.c