]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/bio-integrity.c
bio-integrity: Add explicit field for owner of bip_buf
[karo-tx-linux.git] / fs / bio-integrity.c
index ca7b02dbf09d62d731faf3810033c14bb7f4339e..8fb42916d8a29812e349fdbfa980ef1c34056ce4 100644 (file)
@@ -97,9 +97,7 @@ void bio_integrity_free(struct bio *bio)
        struct bio_integrity_payload *bip = bio->bi_integrity;
        struct bio_set *bs = bio->bi_pool;
 
-       /* A cloned bio doesn't own the integrity metadata */
-       if (!bio_flagged(bio, BIO_CLONED) && !bio_flagged(bio, BIO_FS_INTEGRITY)
-           && bip->bip_buf != NULL)
+       if (bip->bip_owns_buf)
                kfree(bip->bip_buf);
 
        if (bs) {
@@ -386,6 +384,7 @@ int bio_integrity_prep(struct bio *bio)
                return -EIO;
        }
 
+       bip->bip_owns_buf = 1;
        bip->bip_buf = buf;
        bip->bip_size = len;
        bip->bip_sector = bio->bi_sector;