diff options
Diffstat (limited to 'hal-0.5.11-patches/0010-volume.num_blocks-can-become-larger-than-2G.patch')
-rw-r--r-- | hal-0.5.11-patches/0010-volume.num_blocks-can-become-larger-than-2G.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/hal-0.5.11-patches/0010-volume.num_blocks-can-become-larger-than-2G.patch b/hal-0.5.11-patches/0010-volume.num_blocks-can-become-larger-than-2G.patch new file mode 100644 index 00000000..76b1d3a1 --- /dev/null +++ b/hal-0.5.11-patches/0010-volume.num_blocks-can-become-larger-than-2G.patch @@ -0,0 +1,34 @@ +From 7230a63d5564e78ee61000cf5fc816d21d454a94 Mon Sep 17 00:00:00 2001 +From: Martin Pitt <martin.pitt@ubuntu.com> +Date: Sun, 10 Aug 2008 15:52:36 +0200 +Subject: [PATCH 10/48] volume.num_blocks can become larger than 2G + +Fix mounting of devices with a very large number of reported blocks by +making it a 64 bit property. (https://launchpad.net/bugs/209483) +--- + hald/linux/blockdev.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hald/linux/blockdev.c b/hald/linux/blockdev.c +index 6042558..d88a815 100644 +--- a/hald/linux/blockdev.c ++++ b/hald/linux/blockdev.c +@@ -1436,13 +1436,13 @@ hotplug_event_begin_add_blockdev (const gchar *sysfs_path, const gchar *device_f + * (block size requires opening the device file) + */ + hal_device_property_set_int (d, "volume.block_size", 512); +- if (!hal_util_set_int_from_file (d, "volume.num_blocks", sysfs_path_real, "size", 0)) { ++ if (!hal_util_set_uint64_from_file (d, "volume.num_blocks", sysfs_path_real, "size", 0)) { + HAL_INFO (("Ignoring hotplug event - cannot read 'size'")); + goto error; + } + hal_device_property_set_uint64 ( + d, "volume.size", +- ((dbus_uint64_t)(512)) * ((dbus_uint64_t)(hal_device_property_get_int (d, "volume.num_blocks")))); ++ ((dbus_uint64_t)(512)) * ((dbus_uint64_t)(hal_device_property_get_uint64 (d, "volume.num_blocks")))); + /* TODO: move to prober? */ + if (is_physical_partition) { + guint64 start_block; +-- +1.6.1.2 + |