Commit aca27ba9 authored by Tejun Heo's avatar Tejun Heo Committed by Jens Axboe

bio, fs: update RWA_MASK, READA and SWRITE to match the corresponding BIO_RW_* bits

Commit a82afdfc (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 a82afdfc 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: default avatarTejun Heo <tj@kernel.org>
Reported-and-bisected-by: default avatarVladislav Bolkhovitin <vst@vlnb.net>
Root-caused-by: default avatarNeil Brown <neilb@suse.de>
Cc: stable@kernel.org
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent edca4a38
...@@ -145,12 +145,12 @@ struct inodes_stat_t { ...@@ -145,12 +145,12 @@ struct inodes_stat_t {
* *
*/ */
#define RW_MASK 1 #define RW_MASK 1
#define RWA_MASK 2 #define RWA_MASK 16
#define READ 0 #define READ 0
#define WRITE 1 #define WRITE 1
#define READA 2 /* readahead - don't block if no resources */ #define READA 16 /* readahead - don't block if no resources */
#define SWRITE 3 /* for ll_rw_block() - wait for buffer lock */ #define SWRITE 17 /* for ll_rw_block(), wait for buffer lock */
#define READ_SYNC (READ | REQ_SYNC | REQ_UNPLUG) #define READ_SYNC (READ | REQ_SYNC | REQ_UNPLUG)
#define READ_META (READ | REQ_META) #define READ_META (READ | REQ_META)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment