projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races
[firefly-linux-kernel-4.4.55.git]
/
fs
/
bio-integrity.c
diff --git
a/fs/bio-integrity.c
b/fs/bio-integrity.c
index 8fb42916d8a29812e349fdbfa980ef1c34056ce4..433c3b828e1dcf65498d71febf4a3de0d79aaf6c 100644
(file)
--- a/
fs/bio-integrity.c
+++ b/
fs/bio-integrity.c
@@
-114,6
+114,14
@@
void bio_integrity_free(struct bio *bio)
}
EXPORT_SYMBOL(bio_integrity_free);
}
EXPORT_SYMBOL(bio_integrity_free);
+static inline unsigned int bip_integrity_vecs(struct bio_integrity_payload *bip)
+{
+ if (bip->bip_slab == BIO_POOL_NONE)
+ return BIP_INLINE_VECS;
+
+ return bvec_nr_vecs(bip->bip_slab);
+}
+
/**
* bio_integrity_add_page - Attach integrity metadata
* @bio: bio to update
/**
* bio_integrity_add_page - Attach integrity metadata
* @bio: bio to update
@@
-129,7
+137,7
@@
int bio_integrity_add_page(struct bio *bio, struct page *page,
struct bio_integrity_payload *bip = bio->bi_integrity;
struct bio_vec *iv;
struct bio_integrity_payload *bip = bio->bi_integrity;
struct bio_vec *iv;
- if (bip->bip_vcnt >= b
vec_nr_vecs(bip->bip_slab
)) {
+ if (bip->bip_vcnt >= b
ip_integrity_vecs(bip
)) {
printk(KERN_ERR "%s: bip_vec full\n", __func__);
return 0;
}
printk(KERN_ERR "%s: bip_vec full\n", __func__);
return 0;
}
@@
-450,7
+458,7
@@
static int bio_integrity_verify(struct bio *bio)
bix.disk_name = bio->bi_bdev->bd_disk->disk_name;
bix.sector_size = bi->sector_size;
bix.disk_name = bio->bi_bdev->bd_disk->disk_name;
bix.sector_size = bi->sector_size;
- bio_for_each_segment(bv, bio, i) {
+ bio_for_each_segment
_all
(bv, bio, i) {
void *kaddr = kmap_atomic(bv->bv_page);
bix.data_buf = kaddr + bv->bv_offset;
bix.data_size = bv->bv_len;
void *kaddr = kmap_atomic(bv->bv_page);
bix.data_buf = kaddr + bv->bv_offset;
bix.data_size = bv->bv_len;
@@
-734,7
+742,7
@@
void bioset_integrity_free(struct bio_set *bs)
mempool_destroy(bs->bio_integrity_pool);
if (bs->bvec_integrity_pool)
mempool_destroy(bs->bio_integrity_pool);
if (bs->bvec_integrity_pool)
- mempool_destroy(bs->b
io
_integrity_pool);
+ mempool_destroy(bs->b
vec
_integrity_pool);
}
EXPORT_SYMBOL(bioset_integrity_free);
}
EXPORT_SYMBOL(bioset_integrity_free);