提交 d3849953 编写于 作者: C Christoph Hellwig 提交者: Jens Axboe

fs: decouple READ and WRITE from the block layer ops

Move READ and WRITE to kernel.h and don't define them in terms of block
layer ops; they are our generic data direction indicators these days
and have no more resemblance with the block layer ops.
Signed-off-by: NChristoph Hellwig <hch@lst.de>
Signed-off-by: NJens Axboe <axboe@fb.com>
上级 70fd7614
...@@ -62,6 +62,12 @@ ...@@ -62,6 +62,12 @@
#define bio_sectors(bio) ((bio)->bi_iter.bi_size >> 9) #define bio_sectors(bio) ((bio)->bi_iter.bi_size >> 9)
#define bio_end_sector(bio) ((bio)->bi_iter.bi_sector + bio_sectors((bio))) #define bio_end_sector(bio) ((bio)->bi_iter.bi_sector + bio_sectors((bio)))
/*
* Return the data direction, READ or WRITE.
*/
#define bio_data_dir(bio) \
(op_is_write(bio_op(bio)) ? WRITE : READ)
/* /*
* Check whether this bio carries any data or not. A NULL bio is allowed. * Check whether this bio carries any data or not. A NULL bio is allowed.
*/ */
......
...@@ -151,11 +151,6 @@ typedef int (dio_iodone_t)(struct kiocb *iocb, loff_t offset, ...@@ -151,11 +151,6 @@ typedef int (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
*/ */
#define CHECK_IOVEC_ONLY -1 #define CHECK_IOVEC_ONLY -1
#define RW_MASK REQ_OP_WRITE
#define READ REQ_OP_READ
#define WRITE REQ_OP_WRITE
/* /*
* Attribute flags. These should be or-ed together to figure out what * Attribute flags. These should be or-ed together to figure out what
* has been changed! * has been changed!
...@@ -2452,14 +2447,6 @@ extern void make_bad_inode(struct inode *); ...@@ -2452,14 +2447,6 @@ extern void make_bad_inode(struct inode *);
extern bool is_bad_inode(struct inode *); extern bool is_bad_inode(struct inode *);
#ifdef CONFIG_BLOCK #ifdef CONFIG_BLOCK
/*
* return data direction, READ or WRITE
*/
static inline int bio_data_dir(struct bio *bio)
{
return op_is_write(bio_op(bio)) ? WRITE : READ;
}
extern void check_disk_size_change(struct gendisk *disk, extern void check_disk_size_change(struct gendisk *disk,
struct block_device *bdev); struct block_device *bdev);
extern int revalidate_disk(struct gendisk *); extern int revalidate_disk(struct gendisk *);
......
...@@ -50,6 +50,10 @@ ...@@ -50,6 +50,10 @@
#define PTR_ALIGN(p, a) ((typeof(p))ALIGN((unsigned long)(p), (a))) #define PTR_ALIGN(p, a) ((typeof(p))ALIGN((unsigned long)(p), (a)))
#define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0) #define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0)
/* generic data direction definitions */
#define READ 0
#define WRITE 1
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
#define u64_to_user_ptr(x) ( \ #define u64_to_user_ptr(x) ( \
......
...@@ -125,7 +125,7 @@ static inline bool iter_is_iovec(const struct iov_iter *i) ...@@ -125,7 +125,7 @@ static inline bool iter_is_iovec(const struct iov_iter *i)
* *
* The ?: is just for type safety. * The ?: is just for type safety.
*/ */
#define iov_iter_rw(i) ((0 ? (struct iov_iter *)0 : (i))->type & RW_MASK) #define iov_iter_rw(i) ((0 ? (struct iov_iter *)0 : (i))->type & (READ | WRITE))
/* /*
* Cap the iov_iter by given limit; note that the second argument is * Cap the iov_iter by given limit; note that the second argument is
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册