target/file: Fix off-by-one READ_CAPACITY bug for !S_ISBLK export
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 30 May 2013 04:35:23 +0000 (21:35 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 31 May 2013 00:46:27 +0000 (17:46 -0700)
commit21363ca873334391992f2f424856aa864345bb61
treea3bf98065a2ae02afd26dce1b1c34e75a4c7ee5b
parent1d19f7800d643b270b28d0a969c5eca455d54397
target/file: Fix off-by-one READ_CAPACITY bug for !S_ISBLK export

This patch fixes a bug where FILEIO was incorrectly reporting the number
of logical blocks (+ 1) when using non struct block_device export mode.

It changes fd_get_blocks() to follow all other backend ->get_blocks() cases,
and reduces the calculated dev_size by one dev->dev_attrib.block_size
number of bytes, and also fixes initial fd_block_size assignment at
fd_configure_device() time introduced in commit 0fd97ccf4.

Reported-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
Reported-by: Badari Pulavarty <pbadari@us.ibm.com>
Tested-by: Badari Pulavarty <pbadari@us.ibm.com>
Cc: stable@vger.kernel.org
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_file.c