mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
4.10 compat - BIO flag changes and others
[bio] The req_op enum was changed to req_opf. Update the "Linux 4.8 API"
autotools checks to use an int to determine whether the various REQ_OP
values are defined. This should work properly on kernels >= 4.8.
[bio] bio_set_op_attrs() is now an inline function and can't be detected
with #ifdef. Add a configure check to determine whether bio_set_op_attrs()
is defined. Move the local definition of it from vdev_disk.c to
blkdev_compat.h for consistency with other related compability shims.
[bio] The read/write flags and their modifiers, including WRITE_FLUSH,
WRITE_FUA and WRITE_FLUSH_FUA have been removed from fs.h. Add the new
bio_set_flush() compatibility wrapper to replace VDEV_WRITE_FLUSH_FUA
and set the flags appropriately for each supported kernel version.
[vfs] The generic_readlink() function has been made static. If .readlink
in inode_operations is NULL, generic_readlink() is used.
[zol typo] Completely unrelated to 4.10 compat, fix a typo in the check
for REQ_OP_SECURE_ERASE so that the proper macro is defined:
s/HAVE_REQ_OP_SECURE_DISCARD/HAVE_REQ_OP_SECURE_ERASE/
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Chunwei Chen <david.chen@osnexus.com>
Signed-off-by: Tim Chase <tim@chase2k.com>
Closes #5499
This commit is contained in:
committed by
Brian Behlendorf
parent
3500a14595
commit
a5e046eaac
@@ -488,11 +488,6 @@ bio_map_abd_off(struct bio *bio, abd_t *abd, unsigned int size, size_t off)
|
||||
return (abd_scatter_bio_map_off(bio, abd, size, off));
|
||||
}
|
||||
|
||||
#ifndef bio_set_op_attrs
|
||||
#define bio_set_op_attrs(bio, rw, flags) \
|
||||
do { (bio)->bi_rw |= (rw)|(flags); } while (0)
|
||||
#endif
|
||||
|
||||
static inline void
|
||||
vdev_submit_bio_impl(struct bio *bio)
|
||||
{
|
||||
@@ -659,7 +654,7 @@ vdev_disk_io_flush(struct block_device *bdev, zio_t *zio)
|
||||
bio->bi_end_io = vdev_disk_io_flush_completion;
|
||||
bio->bi_private = zio;
|
||||
bio->bi_bdev = bdev;
|
||||
bio_set_op_attrs(bio, 0, VDEV_WRITE_FLUSH_FUA);
|
||||
bio_set_flush(bio);
|
||||
vdev_submit_bio(bio);
|
||||
invalidate_bdev(bdev);
|
||||
|
||||
|
||||
@@ -770,7 +770,9 @@ const struct inode_operations zpl_dir_inode_operations = {
|
||||
};
|
||||
|
||||
const struct inode_operations zpl_symlink_inode_operations = {
|
||||
#ifdef HAVE_GENERIC_READLINK
|
||||
.readlink = generic_readlink,
|
||||
#endif
|
||||
#if defined(HAVE_GET_LINK_DELAYED) || defined(HAVE_GET_LINK_COOKIE)
|
||||
.get_link = zpl_get_link,
|
||||
#elif defined(HAVE_FOLLOW_LINK_COOKIE) || defined(HAVE_FOLLOW_LINK_NAMEIDATA)
|
||||
|
||||
Reference in New Issue
Block a user