Commit 3310eeba authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: remove the BIO_USER_MAPPED flag



Just check if there is private data, in which case the bio must have
originated from bio_copy_user_iov.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 7589ad67
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -109,7 +109,7 @@ static int bio_uncopy_user(struct bio *bio)
	struct bio_map_data *bmd = bio->bi_private;
	int ret = 0;

	if (!bmd || !bmd->is_null_mapped) {
	if (!bmd->is_null_mapped) {
		/*
		 * if we're in a workqueue, the request is orphaned, so
		 * don't copy into a random user address space, just free
@@ -307,8 +307,6 @@ static int bio_map_user_iov(struct request *rq, struct iov_iter *iter,
			break;
	}

	bio_set_flag(bio, BIO_USER_MAPPED);

	/*
	 * Subtle: if we end up needing to bounce a bio, it would normally
	 * disappear when its bi_end_io is run.  However, we need the original
@@ -654,12 +652,12 @@ int blk_rq_unmap_user(struct bio *bio)
		if (unlikely(bio_flagged(bio, BIO_BOUNCED)))
			mapped_bio = bio->bi_private;

		if (bio_flagged(mapped_bio, BIO_USER_MAPPED)) {
			bio_unmap_user(mapped_bio);
		} else {
		if (bio->bi_private) {
			ret2 = bio_uncopy_user(mapped_bio);
			if (ret2 && !ret)
				ret = ret2;
		} else {
			bio_unmap_user(mapped_bio);
		}

		mapped_bio = bio;
+0 −1
Original line number Diff line number Diff line
@@ -256,7 +256,6 @@ enum {
	BIO_NO_PAGE_REF,	/* don't put release vec pages */
	BIO_CLONED,		/* doesn't own data */
	BIO_BOUNCED,		/* bio is a bounce bio */
	BIO_USER_MAPPED,	/* contains user pages */
	BIO_WORKINGSET,		/* contains userspace workingset pages */
	BIO_QUIET,		/* Make BIO Quiet */
	BIO_CHAIN,		/* chained bio, ->bi_remaining in effect */