diff options
author | Tejun Heo <tj@kernel.org> | 2010-08-03 07:14:33 -0400 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-08-07 12:53:07 -0400 |
commit | aca27ba9618276dd2f777bcd5a1419589ccf1ca8 (patch) | |
tree | 9ef27a70973a96a30c17d31ac0be643ce531cb66 /include | |
parent | edca4a380584a65a16839bdee33ec82244f0f88e (diff) |
bio, fs: update RWA_MASK, READA and SWRITE to match the corresponding BIO_RW_* bits
Commit a82afdf (block: use the same failfast bits for bio and request)
moved BIO_RW_* bits around such that they match up with REQ_* bits.
Unfortunately, fs.h hard coded RW_MASK, RWA_MASK, READ, WRITE, READA
and SWRITE as 0, 1, 2 and 3, and expected them to match with BIO_RW_*
bits. READ/WRITE didn't change but BIO_RW_AHEAD was moved to bit 4
instead of bit 1, breaking RWA_MASK, READA and SWRITE.
This patch updates RWA_MASK, READA and SWRITE such that they match the
BIO_RW_* bits again. A follow up patch will update the definitions to
directly use BIO_RW_* bits so that this kind of breakage won't happen
again.
Neil also spotted missing RWA_MASK conversion.
Stable: The offending commit a82afdf was released with v2.6.32, so
this patch should be applied to all kernels since then but it must
_NOT_ be applied to kernels earlier than that.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-and-bisected-by: Vladislav Bolkhovitin <vst@vlnb.net>
Root-caused-by: Neil Brown <neilb@suse.de>
Cc: stable@kernel.org
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fs.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index c5c92943c767..55dad7bca25b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -145,12 +145,12 @@ struct inodes_stat_t { | |||
145 | * | 145 | * |
146 | */ | 146 | */ |
147 | #define RW_MASK 1 | 147 | #define RW_MASK 1 |
148 | #define RWA_MASK 2 | 148 | #define RWA_MASK 16 |
149 | 149 | ||
150 | #define READ 0 | 150 | #define READ 0 |
151 | #define WRITE 1 | 151 | #define WRITE 1 |
152 | #define READA 2 /* readahead - don't block if no resources */ | 152 | #define READA 16 /* readahead - don't block if no resources */ |
153 | #define SWRITE 3 /* for ll_rw_block() - wait for buffer lock */ | 153 | #define SWRITE 17 /* for ll_rw_block(), wait for buffer lock */ |
154 | 154 | ||
155 | #define READ_SYNC (READ | REQ_SYNC | REQ_UNPLUG) | 155 | #define READ_SYNC (READ | REQ_SYNC | REQ_UNPLUG) |
156 | #define READ_META (READ | REQ_META) | 156 | #define READ_META (READ | REQ_META) |