@@ -54,7 +54,7 @@ static bool blkdev_dio_unaligned(struct block_device *bdev, loff_t pos,
5454static ssize_t __blkdev_direct_IO_simple (struct kiocb * iocb ,
5555 struct iov_iter * iter , unsigned int nr_pages )
5656{
57- struct block_device * bdev = iocb -> ki_filp -> private_data ;
57+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
5858 struct bio_vec inline_vecs [DIO_INLINE_BIO_VECS ], * vecs ;
5959 loff_t pos = iocb -> ki_pos ;
6060 bool should_dirty = false;
@@ -170,7 +170,7 @@ static void blkdev_bio_end_io(struct bio *bio)
170170static ssize_t __blkdev_direct_IO (struct kiocb * iocb , struct iov_iter * iter ,
171171 unsigned int nr_pages )
172172{
173- struct block_device * bdev = iocb -> ki_filp -> private_data ;
173+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
174174 struct blk_plug plug ;
175175 struct blkdev_dio * dio ;
176176 struct bio * bio ;
@@ -310,7 +310,7 @@ static ssize_t __blkdev_direct_IO_async(struct kiocb *iocb,
310310 struct iov_iter * iter ,
311311 unsigned int nr_pages )
312312{
313- struct block_device * bdev = iocb -> ki_filp -> private_data ;
313+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
314314 bool is_read = iov_iter_rw (iter ) == READ ;
315315 blk_opf_t opf = is_read ? REQ_OP_READ : dio_bio_write_op (iocb );
316316 struct blkdev_dio * dio ;
@@ -451,7 +451,7 @@ static loff_t blkdev_llseek(struct file *file, loff_t offset, int whence)
451451static int blkdev_fsync (struct file * filp , loff_t start , loff_t end ,
452452 int datasync )
453453{
454- struct block_device * bdev = filp -> private_data ;
454+ struct block_device * bdev = I_BDEV ( filp -> f_mapping -> host ) ;
455455 int error ;
456456
457457 error = file_write_and_wait_range (filp , start , end );
@@ -516,17 +516,15 @@ static int blkdev_open(struct inode *inode, struct file *filp)
516516 if (IS_ERR (bdev ))
517517 return PTR_ERR (bdev );
518518
519- filp -> private_data = bdev ;
520519 filp -> f_mapping = bdev -> bd_inode -> i_mapping ;
521520 filp -> f_wb_err = filemap_sample_wb_err (filp -> f_mapping );
522521 return 0 ;
523522}
524523
525524static int blkdev_release (struct inode * inode , struct file * filp )
526525{
527- struct block_device * bdev = filp -> private_data ;
528-
529- blkdev_put (bdev , (filp -> f_mode & FMODE_EXCL ) ? filp : NULL );
526+ blkdev_put (I_BDEV (filp -> f_mapping -> host ),
527+ (filp -> f_mode & FMODE_EXCL ) ? filp : NULL );
530528 return 0 ;
531529}
532530
@@ -539,7 +537,7 @@ static int blkdev_release(struct inode *inode, struct file *filp)
539537 */
540538static ssize_t blkdev_write_iter (struct kiocb * iocb , struct iov_iter * from )
541539{
542- struct block_device * bdev = iocb -> ki_filp -> private_data ;
540+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
543541 struct inode * bd_inode = bdev -> bd_inode ;
544542 loff_t size = bdev_nr_bytes (bdev );
545543 size_t shorted = 0 ;
@@ -575,7 +573,7 @@ static ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *from)
575573
576574static ssize_t blkdev_read_iter (struct kiocb * iocb , struct iov_iter * to )
577575{
578- struct block_device * bdev = iocb -> ki_filp -> private_data ;
576+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
579577 loff_t size = bdev_nr_bytes (bdev );
580578 loff_t pos = iocb -> ki_pos ;
581579 size_t shorted = 0 ;
0 commit comments