Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1379718

Re: [PATCH 41/42] block: do not use REQ_FLUSH for tracking flush support

From Juergen Gross <kernel@pfupf.net>
Newsgroups linux.kernel
Subject Re: [PATCH 41/42] block: do not use REQ_FLUSH for tracking flush support
Date 2016-04-15 13:00 +0200
Message-ID <ro9DI-1Ev-19@gated-at.bofh.it> (permalink)
References <ro9u1-1AH-5@gated-at.bofh.it> <ro9u3-1AH-41@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 15/04/16 12:40, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
> 
> The last patch added a REQ_OP_FLUSH for request_fn drivers
> and the next patch renames REQ_FLUSH to REQ_PREFLUSH which
> will be used by file systems and make_request_fn drivers so
> they can send a write/flush combo.
> 
> This patch drops xen's use of REQ_FLUSH to track if it supports
> REQ_OP_FLUSH requests, so REQ_FLUSH can be deleted.
> 
> v6:
> - Dropped parts of patch handled by Jens's QUEUE_FLAG_WC/FUA
> patches and modified patch to check feature_flush/fua bits.
> 
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> Reviewed-by: Hannes Reinecke <hare@suse.com>
> ---
>  drivers/block/xen-blkfront.c | 47 ++++++++++++++++++++++----------------------
>  1 file changed, 24 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
> index f01691a..d6429e7 100644
> --- a/drivers/block/xen-blkfront.c
> +++ b/drivers/block/xen-blkfront.c

...

> @@ -985,24 +981,22 @@ static int xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size,
>  	return 0;
>  }
>  
> -static const char *flush_info(unsigned int feature_flush)
> +static const char *flush_info(struct blkfront_info *info)
>  {
> -	switch (feature_flush & ((REQ_FLUSH | REQ_FUA))) {
> -	case REQ_FLUSH|REQ_FUA:
> +	if (info->feature_flush && info->feature_fua)
>  		return "barrier: enabled;";
> -	case REQ_FLUSH:
> +	else if (info->feature_fua)

Shouldn't this test feature_flush?

>  		return "flush diskcache: enabled;";
> -	default:
> +	else
>  		return "barrier or flush: disabled;";
> -	}
>  }
>  
>  static void xlvbd_flush(struct blkfront_info *info)
>  {
> -	blk_queue_write_cache(info->rq, info->feature_flush & REQ_FLUSH,
> -				info->feature_flush & REQ_FUA);
> +	blk_queue_write_cache(info->rq, info->feature_flush ? true : false,
> +			      info->feature_flush ? true : false);

And here the second test should be feature_fua?

>  	pr_info("blkfront: %s: %s %s %s %s %s\n",
> -		info->gd->disk_name, flush_info(info->feature_flush),
> +		info->gd->disk_name, flush_info(info),
>  		"persistent grants:", info->feature_persistent ?
>  		"enabled;" : "disabled;", "indirect descriptors:",
>  		info->max_indirect_segments ? "enabled;" : "disabled;");


Juergen

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 00/42] v6: separate operations from flags in the bio/request structs mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 16/42] nilfs: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 10/42] btrfs: use bio fields for op and flags mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 35/42] blktrace: get op from req->op/bio->bi_op mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 05/42] fs: have ll_rw_block users pass in op and flags separately mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 29/42] block: prepare elevator to use REQ_OPs. mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 23/42] md/raid: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 38/42] block, fs: remove old REQ definitions. mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 41/42] block: do not use REQ_FLUSH for tracking flush support mchristi@redhat.com - 2016-04-15 12:50 +0200
    Re: [PATCH 41/42] block: do not use REQ_FLUSH for tracking flush  support Juergen Gross <kernel@pfupf.net> - 2016-04-15 13:00 +0200
      Re: [PATCH 41/42] block: do not use REQ_FLUSH for tracking flush  support Mike Christie <mchristi@redhat.com> - 2016-04-15 21:00 +0200
  [PATCH 42/42] block, drivers, fs: rename REQ_FLUSH to REQ_PREFLUSH mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 36/42] ide cd: do not set REQ_WRITE on requests. mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 40/42] block, drivers: add REQ_OP_FLUSH operation mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 19/42] dm: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 12:50 +0200
  [PATCH 34/42] drivers: set request op to REQ_OP mchristi@redhat.com - 2016-04-15 13:00 +0200
  [PATCH 33/42] block: convert rq_data_dir helper to use REQ_OPs mchristi@redhat.com - 2016-04-15 13:00 +0200
  [PATCH 26/42] block: copy bio op to request op mchristi@redhat.com - 2016-04-15 13:00 +0200
  [PATCH 30/42] blkg_rwstat: separate op from flags mchristi@redhat.com - 2016-04-15 13:00 +0200
  [PATCH 37/42] block, fs, drivers: do use bi_rw/cmd_flags for REQ_OPs. mchristi@redhat.com - 2016-04-15 13:00 +0200
  [PATCH 32/42] block: convert is_sync helpers to use REQ_OPs. mchristi@redhat.com - 2016-04-15 13:00 +0200
  [PATCH 31/42] block: convert merge/insert code to check for REQ_OPs. mchristi@redhat.com - 2016-04-15 13:00 +0200
  [PATCH 22/42] drbd: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:10 +0200
  [PATCH 27/42] block: prepare request creation/destruction code to use REQ_OPs mchristi@redhat.com - 2016-04-15 13:10 +0200
  [PATCH 28/42] block: prepare mq request creation to use REQ_OPs mchristi@redhat.com - 2016-04-15 13:10 +0200
  [PATCH 25/42] target: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:10 +0200
  [PATCH 24/42] xen: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:10 +0200
  [PATCH 21/42] bcache: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:10 +0200
  [PATCH 08/42] btrfs: set bi_op tp REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 20/42] dm: pass dm stats data dir instead of bi_rw mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 12/42] gfs2: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 17/42] ocfs2: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 13/42] xfs: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 06/42] direct-io: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 07/42] btrfs: have submit_one_bio users setup bio bi_op mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 11/42] f2fs: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 18/42] pm: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 09/42] btrfs: update __btrfs_map_block for bi_op transition mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 15/42] mpage: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 03/42] block, fs, mm, drivers: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 14/42] hfsplus: set bi_op to REQ_OP mchristi@redhat.com - 2016-04-15 13:20 +0200
  [PATCH 04/42] fs: have submit_bh users pass in op and flags separately mchristi@redhat.com - 2016-04-15 13:20 +0200
    Re: [dm-devel] [PATCH 04/42] fs: have submit_bh users pass in op  and flags separately Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> - 2016-04-18 18:40 +0200
  [PATCH 02/42] block: add REQ_OP definitions and bi_op/op fields mchristi@redhat.com - 2016-04-15 13:30 +0200

csiph-web