15 Oct, 2010
1 commit
-
Previously we tracked whether the integrity metadata had been remapped
using a request flag. This was fine for low-level retries. However, if
an I/O was redriven by upper layers we would end up remapping again,
causing the retry to fail.Deprecate the REQ_INTEGRITY flag and introduce BIO_MAPPED_INTEGRITY
which enables filesystems to notify lower layers that the bio in
question has already been remapped.Signed-off-by: Martin K. Petersen
Signed-off-by: Jens Axboe
26 Nov, 2009
1 commit
-
sd_dif.c was not updated to return -EILSEQ, leading to error handling
failures in applications which provide their own integrity metadata (as
opposed to being protected by the block layer functions).Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley
02 Oct, 2009
2 commits
-
So far we have only issued DIF commands if CONFIG_BLK_DEV_INTEGRITY is
enabled. However, communication between initiator and target should be
independent of protection information DMA. There are DIF-only host
adapters coming out that will be able to take advantage of this.Move the relevant DIF bits to sd.c.
Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley -
The checksum format is orthogonal to whether the protection information
is being passed on beyond the HBA or not. It is perfectly valid to use
a non-T10 CRC with WRITE_STRIP and READ_INSERT.Consequently it no longer makes sense to explicitly refer to the
conversion in the protection operation. Update sd_dif and lpfc
accordingly.Signed-off-by: Martin K. Petersen
Acked-by: Ihab Hamadi
Signed-off-by: James Bottomley
11 May, 2009
1 commit
-
With recent cleanups, there is no place where low level driver
directly manipulates request fields. This means that the 'hard'
request fields always equal the !hard fields. Convert all
rq->sectors, nr_sectors and current_nr_sectors references to
accessors.While at it, drop superflous blk_rq_pos() < 0 test in swim.c.
[ Impact: use pos and nr_sectors accessors ]
Signed-off-by: Tejun Heo
Acked-by: Geert Uytterhoeven
Tested-by: Grant Likely
Acked-by: Grant Likely
Tested-by: Adrian McMenamin
Acked-by: Adrian McMenamin
Acked-by: Mike Miller
Cc: James Bottomley
Cc: Bartlomiej Zolnierkiewicz
Cc: Borislav Petkov
Cc: Sergei Shtylyov
Cc: Eric Moore
Cc: Alan Stern
Cc: FUJITA Tomonori
Cc: Pete Zaitcev
Cc: Stephen Rothwell
Cc: Paul Clements
Cc: Tim Waugh
Cc: Jeff Garzik
Cc: Jeremy Fitzhardinge
Cc: Alex Dubov
Cc: David Woodhouse
Cc: Martin Schwidefsky
Cc: Dario Ballabio
Cc: David S. Miller
Cc: Rusty Russell
Cc: unsik Kim
Cc: Laurent Vivier
Signed-off-by: Jens Axboe
05 Jan, 2009
3 commits
-
DIF does not work with 6-byte commands so we previously ignored those
commands when preparing a request. However, DIX does not need
RDPROTECT/WRPROTECT to be set and 6-byte commands are consequently
perfectly valid in host-only mode.This patch fixes a problem where we would set the wrong DIX operation
when issuing commands to a legacy disk.Signed-off-by: Martin K. Petersen
Reviewed-by: Matthew Wilcox
Signed-off-by: James Bottomley -
Switch tag arrays to u8 to prevent problems on platforms with signed
char.Reported-by: Tim LaBerge
Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley -
Add application tag to the output displayed on error.
Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley
13 Oct, 2008
3 commits
-
For some reason these messages ended up being printed with KERN_INFO
rendering them invisible to pretty much everyone. Switch to
KERN_NOTICE.Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley -
The old detection code couldn't handle all possible combinations of
DIX and DIF. This version does, giving priority to DIX if the
controller is capable.Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley -
Now that we no longer use protection_type as trigger for preparing
protected CDBs we can remove the places that set it to zero. This
allows userland to see which protection type the device is formatted
with regardless of whether the HBA supports DIF or not.Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley
27 Jul, 2008
1 commit
-
Support for controllers and disks that implement DIF protection
information:- During command preparation the RDPROTECT/WRPROTECT must be set
correctly if the target has DIF enabled.- READ(6) and WRITE(6) are not supported when DIF is on.
- The controller must be told how to handle the I/O via the
protection operation field in scsi_cmnd.- Refactor the I/O completion code that extracts failed LBA from the
returned sense data and handle DIF failures correctly.- sd_dif.c implements the functions required to prepare and complete
requests with protection information attached.Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley