|
@@ -202,7 +202,6 @@ __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter,
|
|
|
{
|
|
|
struct file *file = iocb->ki_filp;
|
|
|
struct block_device *bdev = I_BDEV(bdev_file_inode(file));
|
|
|
- unsigned blkbits = blksize_bits(bdev_logical_block_size(bdev));
|
|
|
struct bio_vec inline_vecs[DIO_INLINE_BIO_VECS], *vecs, *bvec;
|
|
|
loff_t pos = iocb->ki_pos;
|
|
|
bool should_dirty = false;
|
|
@@ -211,7 +210,8 @@ __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter,
|
|
|
blk_qc_t qc;
|
|
|
int i;
|
|
|
|
|
|
- if ((pos | iov_iter_alignment(iter)) & ((1 << blkbits) - 1))
|
|
|
+ if ((pos | iov_iter_alignment(iter)) &
|
|
|
+ (bdev_logical_block_size(bdev) - 1))
|
|
|
return -EINVAL;
|
|
|
|
|
|
if (nr_pages <= DIO_INLINE_BIO_VECS)
|
|
@@ -331,7 +331,6 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages)
|
|
|
struct file *file = iocb->ki_filp;
|
|
|
struct inode *inode = bdev_file_inode(file);
|
|
|
struct block_device *bdev = I_BDEV(inode);
|
|
|
- unsigned blkbits = blksize_bits(bdev_logical_block_size(bdev));
|
|
|
struct blkdev_dio *dio;
|
|
|
struct bio *bio;
|
|
|
bool is_read = (iov_iter_rw(iter) == READ);
|
|
@@ -339,7 +338,8 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages)
|
|
|
blk_qc_t qc = BLK_QC_T_NONE;
|
|
|
int ret;
|
|
|
|
|
|
- if ((pos | iov_iter_alignment(iter)) & ((1 << blkbits) - 1))
|
|
|
+ if ((pos | iov_iter_alignment(iter)) &
|
|
|
+ (bdev_logical_block_size(bdev) - 1))
|
|
|
return -EINVAL;
|
|
|
|
|
|
bio = bio_alloc_bioset(GFP_KERNEL, nr_pages, blkdev_dio_pool);
|