diff --git a/configure.d/1_reread_partitions.conf b/configure.d/1_reread_partitions.conf index c76bcfe..6e2d9a5 100644 --- a/configure.d/1_reread_partitions.conf +++ b/configure.d/1_reread_partitions.conf @@ -9,28 +9,39 @@ check() { cur_name=$(basename $2) config_file_path=$1 - if compile_module $cur_name "bdev_disk_changed(NULL, false);" "linux/genhd.h" + if compile_module $cur_name "bdev_disk_changed((struct block_device *)NULL, false);" "linux/genhd.h" then echo $cur_name "1" >> $config_file_path - else + elif compile_module $cur_name "bdev_disk_changed((struct gendisk *)NULL, false);" "linux/genhd.h" + then echo $cur_name "2" >> $config_file_path + else + echo $cur_name "3" >> $config_file_path fi } apply() { case "$1" in "1") + add_function " + static inline void cas_reread_partitions(struct block_device *bdev) + { + bdev_disk_changed(bdev, false); + }" ;; + + "2") add_function " static inline void cas_reread_partitions(struct block_device *bdev) { bdev_disk_changed(bdev->bd_disk, false); }" ;; - "2") + "3") add_function " static inline void cas_reread_partitions(struct block_device *bdev) { ioctl_by_bdev(bdev, BLKRRPART, (unsigned long)NULL); }" ;; + *) exit 1 esac