Re: [PATCH 2/5] block: add function to issue compare and write

Christoph Hellwig
2014-10-17T09:55:55Z

On Thu, Oct 16, 2014 at 12:37:12AM -0500, michaelc@cs.wisc.edu wrote:
> @@ -160,7 +160,7 @@ enum rq_flag_bits {
> __REQ_DISCARD, /* request to discard sectors */
> __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */
> __REQ_WRITE_SAME, /* write same block many times */
> -
> + __REQ_CMP_AND_WRITE, /* compare data and write if matched */

I think it's time that we stop overloading the request flags with
request types.

We already have req->cmd_type which actually is a fairly good
description of what we get except for REQ_TYPE_FS, which is a horrible
overload using req->cmd_flags.

Given that you're just one of many currently ongoing patches to add
more flags here I think you need to byte the bullet and fix this up
by replacing REQ_TYPE_FS with:

REQ_TYPE_WRITE
REQ_TYPE_READ
REQ_TYPE_FLUSH
REQ_TYPE_DISCARD
REQ_TYPE_WRITE_SAME
REQ_TYPE_CMP_AND_WRITE

sd.c is a nice guide of what should be a flag and what a type since my
last refactoring of the command_init function.