Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 213070
b: refs/heads/master
c: 495d2b3
h: refs/heads/master
v: v3
  • Loading branch information
Martin K. Petersen authored and Jens Axboe committed Oct 15, 2010
1 parent 13e78de commit 80696e5
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e817bf3f68f55e7307c3e9abe5f32d0c05c83988
refs/heads/master: 495d2b3883682fcd1c3dee3a45e38fd00154ae25
11 changes: 6 additions & 5 deletions trunk/drivers/scsi/sd_dif.c
Original file line number Diff line number Diff line change
Expand Up @@ -375,21 +375,20 @@ int sd_dif_prepare(struct request *rq, sector_t hw_sector, unsigned int sector_s
unsigned int i, j;
u32 phys, virt;

/* Already remapped? */
if (rq->cmd_flags & REQ_INTEGRITY)
return 0;

sdkp = rq->bio->bi_bdev->bd_disk->private_data;

if (sdkp->protection_type == SD_DIF_TYPE3_PROTECTION)
return 0;

rq->cmd_flags |= REQ_INTEGRITY;
phys = hw_sector & 0xffffffff;

__rq_for_each_bio(bio, rq) {
struct bio_vec *iv;

/* Already remapped? */
if (bio_flagged(bio, BIO_MAPPED_INTEGRITY))
break;

virt = bio->bi_integrity->bip_sector & 0xffffffff;

bip_for_each_vec(iv, bio->bi_integrity, i) {
Expand All @@ -408,6 +407,8 @@ int sd_dif_prepare(struct request *rq, sector_t hw_sector, unsigned int sector_s

kunmap_atomic(sdt, KM_USER0);
}

bio->bi_flags |= BIO_MAPPED_INTEGRITY;
}

return 0;
Expand Down
3 changes: 1 addition & 2 deletions trunk/include/linux/blk_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ struct bio {
#define BIO_NULL_MAPPED 9 /* contains invalid user pages */
#define BIO_FS_INTEGRITY 10 /* fs owns integrity data, not block layer */
#define BIO_QUIET 11 /* Make BIO Quiet */
#define BIO_MAPPED_INTEGRITY 12/* integrity metadata has been remapped */
#define bio_flagged(bio, flag) ((bio)->bi_flags & (1 << (flag)))

/*
Expand Down Expand Up @@ -148,7 +149,6 @@ enum rq_flag_bits {
__REQ_ORDERED_COLOR, /* is before or after barrier */
__REQ_ALLOCED, /* request came from our alloc pool */
__REQ_COPY_USER, /* contains copies of user pages */
__REQ_INTEGRITY, /* integrity metadata has been remapped */
__REQ_FLUSH, /* request for cache flush */
__REQ_IO_STAT, /* account I/O stat */
__REQ_MIXED_MERGE, /* merge of different types, fail separately */
Expand Down Expand Up @@ -190,7 +190,6 @@ enum rq_flag_bits {
#define REQ_ORDERED_COLOR (1 << __REQ_ORDERED_COLOR)
#define REQ_ALLOCED (1 << __REQ_ALLOCED)
#define REQ_COPY_USER (1 << __REQ_COPY_USER)
#define REQ_INTEGRITY (1 << __REQ_INTEGRITY)
#define REQ_FLUSH (1 << __REQ_FLUSH)
#define REQ_IO_STAT (1 << __REQ_IO_STAT)
#define REQ_MIXED_MERGE (1 << __REQ_MIXED_MERGE)
Expand Down

0 comments on commit 80696e5

Please sign in to comment.