mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
		
							parent
							
								
									70fd76140a
								
							
						
					
					
						commit
						d38499530e
					
				
					 4 changed files with 11 additions and 14 deletions
				
			
		| 
						 | 
				
			
			@ -62,6 +62,12 @@
 | 
			
		|||
#define bio_sectors(bio)	((bio)->bi_iter.bi_size >> 9)
 | 
			
		||||
#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.
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -151,11 +151,6 @@ typedef int (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
 | 
			
		|||
 */
 | 
			
		||||
#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
 | 
			
		||||
 * has been changed!
 | 
			
		||||
| 
						 | 
				
			
			@ -2452,14 +2447,6 @@ extern void make_bad_inode(struct inode *);
 | 
			
		|||
extern bool is_bad_inode(struct inode *);
 | 
			
		||||
 | 
			
		||||
#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,
 | 
			
		||||
				   struct block_device *bdev);
 | 
			
		||||
extern int revalidate_disk(struct gendisk *);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,6 +50,10 @@
 | 
			
		|||
#define PTR_ALIGN(p, a)		((typeof(p))ALIGN((unsigned long)(p), (a)))
 | 
			
		||||
#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 u64_to_user_ptr(x) (		\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,7 +125,7 @@ static inline bool iter_is_iovec(const struct iov_iter *i)
 | 
			
		|||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue