@@ -54,7 +54,7 @@ static bool blkdev_dio_unaligned(struct block_device *bdev, loff_t pos,
54
54
static ssize_t __blkdev_direct_IO_simple (struct kiocb * iocb ,
55
55
struct iov_iter * iter , unsigned int nr_pages )
56
56
{
57
- struct block_device * bdev = iocb -> ki_filp -> private_data ;
57
+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
58
58
struct bio_vec inline_vecs [DIO_INLINE_BIO_VECS ], * vecs ;
59
59
loff_t pos = iocb -> ki_pos ;
60
60
bool should_dirty = false;
@@ -170,7 +170,7 @@ static void blkdev_bio_end_io(struct bio *bio)
170
170
static ssize_t __blkdev_direct_IO (struct kiocb * iocb , struct iov_iter * iter ,
171
171
unsigned int nr_pages )
172
172
{
173
- struct block_device * bdev = iocb -> ki_filp -> private_data ;
173
+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
174
174
struct blk_plug plug ;
175
175
struct blkdev_dio * dio ;
176
176
struct bio * bio ;
@@ -310,7 +310,7 @@ static ssize_t __blkdev_direct_IO_async(struct kiocb *iocb,
310
310
struct iov_iter * iter ,
311
311
unsigned int nr_pages )
312
312
{
313
- struct block_device * bdev = iocb -> ki_filp -> private_data ;
313
+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
314
314
bool is_read = iov_iter_rw (iter ) == READ ;
315
315
blk_opf_t opf = is_read ? REQ_OP_READ : dio_bio_write_op (iocb );
316
316
struct blkdev_dio * dio ;
@@ -451,7 +451,7 @@ static loff_t blkdev_llseek(struct file *file, loff_t offset, int whence)
451
451
static int blkdev_fsync (struct file * filp , loff_t start , loff_t end ,
452
452
int datasync )
453
453
{
454
- struct block_device * bdev = filp -> private_data ;
454
+ struct block_device * bdev = I_BDEV ( filp -> f_mapping -> host ) ;
455
455
int error ;
456
456
457
457
error = file_write_and_wait_range (filp , start , end );
@@ -516,17 +516,15 @@ static int blkdev_open(struct inode *inode, struct file *filp)
516
516
if (IS_ERR (bdev ))
517
517
return PTR_ERR (bdev );
518
518
519
- filp -> private_data = bdev ;
520
519
filp -> f_mapping = bdev -> bd_inode -> i_mapping ;
521
520
filp -> f_wb_err = filemap_sample_wb_err (filp -> f_mapping );
522
521
return 0 ;
523
522
}
524
523
525
524
static int blkdev_release (struct inode * inode , struct file * filp )
526
525
{
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 );
530
528
return 0 ;
531
529
}
532
530
@@ -539,7 +537,7 @@ static int blkdev_release(struct inode *inode, struct file *filp)
539
537
*/
540
538
static ssize_t blkdev_write_iter (struct kiocb * iocb , struct iov_iter * from )
541
539
{
542
- struct block_device * bdev = iocb -> ki_filp -> private_data ;
540
+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
543
541
struct inode * bd_inode = bdev -> bd_inode ;
544
542
loff_t size = bdev_nr_bytes (bdev );
545
543
size_t shorted = 0 ;
@@ -575,7 +573,7 @@ static ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *from)
575
573
576
574
static ssize_t blkdev_read_iter (struct kiocb * iocb , struct iov_iter * to )
577
575
{
578
- struct block_device * bdev = iocb -> ki_filp -> private_data ;
576
+ struct block_device * bdev = I_BDEV ( iocb -> ki_filp -> f_mapping -> host ) ;
579
577
loff_t size = bdev_nr_bytes (bdev );
580
578
loff_t pos = iocb -> ki_pos ;
581
579
size_t shorted = 0 ;
0 commit comments