From: Bart V. A. <bva...@ac...> - 2012-02-29 12:03:25
|
On Wed, Feb 29, 2012 at 12:34 PM, fib...@gm... <fib...@gm...>wrote: > Then, vdisk_fsync() does this: > > if (virt_dev->blockio) { > res = vdisk_blockio_flush(thr->bdev, > (cmd->noio_mem_alloc ? > GFP_NOIO : GFP_KERNEL), true); > > And there's the issue, just as my stack trace above shows. > Which issue ? I might be overlooking something trivial, but I don't see what's wrong with the above code. By the way, this is what I get here for a blockio device: # sg_inq /dev/sdb standard INQUIRY: PQual=0 Device_type=0 RMB=0 version=0x05 [SPC-3] [AERC=0] [TrmTsk=0] NormACA=0 HiSUP=0 Resp_data_format=2 SCCS=0 ACC=0 TPGS=0 3PC=0 Protect=0 BQue=0 EncServ=0 MultiP=1 (VS=0) [MChngr=0] [ACKREQQ=0] Addr16=0 [RelAdr=0] WBus16=0 Sync=0 Linked=0 [TranDis=0] CmdQue=1 [SPI: Clocking=0x0 QAS=0 IUS=0] length=66 (0x42) Peripheral device type: disk Vendor identification: SCST_BIO Product identification: scst_vdisk Product revision level: 300 Unit serial number: 828c4e0f # sg_sync -i /dev/sdb; echo $? 0 Also, I just looked at the code for sg_verify, and it always sets > BYTECHK to 0 (meaning, no data is moved, and nothing gets compared > against) , which is useless as a test. > It seems like you don't have installed the most recent version of sg3_utils yet. A version of sg3_utils that includes an sg_verify command that supports the new --bytchk command line option can be found at one of these locations: * http://sg.danny.cz/sg/p/sg3_utils-1.34b2r440.tgz * http://github.com/bvanassche/sg3_utils Bart. |