mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-18 08:35:08 +08:00
zonefs: count pages after truncating the iterator
Count pages after possibly truncating the iterator to the maximum zone append size, not before. Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
This commit is contained in:
parent
01b2651cfb
commit
89ee72376b
@ -607,14 +607,14 @@ static ssize_t zonefs_file_dio_append(struct kiocb *iocb, struct iov_iter *from)
|
||||
int nr_pages;
|
||||
ssize_t ret;
|
||||
|
||||
nr_pages = iov_iter_npages(from, BIO_MAX_PAGES);
|
||||
if (!nr_pages)
|
||||
return 0;
|
||||
|
||||
max = queue_max_zone_append_sectors(bdev_get_queue(bdev));
|
||||
max = ALIGN_DOWN(max << SECTOR_SHIFT, inode->i_sb->s_blocksize);
|
||||
iov_iter_truncate(from, max);
|
||||
|
||||
nr_pages = iov_iter_npages(from, BIO_MAX_PAGES);
|
||||
if (!nr_pages)
|
||||
return 0;
|
||||
|
||||
bio = bio_alloc_bioset(GFP_NOFS, nr_pages, &fs_bio_set);
|
||||
if (!bio)
|
||||
return -ENOMEM;
|
||||
|
Loading…
Reference in New Issue
Block a user