root cause is patch bsc1226510-fix-build-err-against-6.9.3.patch is wrong. the patch: - if (handle != nbc->backing_bdev_handle) { - err = link_backing_dev(device, new_disk_conf->meta_dev, handle); + if (file != nbc->backing_bdev_file) { + err = link_backing_dev(device, new_disk_conf->meta_dev, file); should be: - if (handle != nbc->backing_bdev_handle) { - err = link_backing_dev(device, new_disk_conf->meta_dev, handle); + if (file_bdev(file) != nbc->backing_bdev) { + err = link_backing_dev(device, new_disk_conf->meta_dev, file); previous code 'if (file != nbc->backing_bdev_file)' usually can be triggered. i.e.: the 'file' is meta_dev file handle, the backing_bdev_file is another file handle, but they point to same device. previous code will increase sysfs refcnt one more. new code 'file_bdev(file) != nbc->backing_bdev' compares device (not file handle) logic is correct.