Add ReadOnly property to the Block interface
authorDavid Zeuthen <davidz@redhat.com>
Wed, 16 Nov 2011 16:10:38 +0000 (11:10 -0500)
committerDavid Zeuthen <davidz@redhat.com>
Wed, 16 Nov 2011 16:10:38 +0000 (11:10 -0500)
Signed-off-by: David Zeuthen <davidz@redhat.com>
data/org.freedesktop.UDisks2.xml
doc/udisks2-sections.txt
src/udiskslinuxblock.c

index 687709e..d969180 100644 (file)
     <!-- Size: The size of the block device. -->
     <property name="Size" type="t" access="read"/>
 
+    <!-- ReadOnly: If %TRUE, the device can not be written to, only read from. -->
+    <property name="ReadOnly" type="b" access="read"/>
+
     <!-- Drive:
          The #org.freedesktop.UDisks2.Drive object that the block device
          belongs to, or '/' if no such object exists.
index dbd22a5..3b162cf 100644 (file)
@@ -60,9 +60,11 @@ udisks_client_get_partition_table_subtype_for_display
 UDISKS_TYPE_CLIENT
 UDISKS_CLIENT
 UDISKS_IS_CLIENT
+UDISKS_TYPE_PARTITION_TYPE_INFO_FLAGS
 <SUBSECTION Private>
 udisks_client_get_type
 udisks_partition_type_info_get_type
+udisks_partition_type_info_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -927,6 +929,7 @@ udisks_block_get_id_version
 udisks_block_get_device_number
 udisks_block_get_preferred_device
 udisks_block_get_size
+udisks_block_get_read_only
 udisks_block_get_symlinks
 udisks_block_get_hint_system
 udisks_block_get_hint_ignore
@@ -958,6 +961,7 @@ udisks_block_set_id_version
 udisks_block_set_device_number
 udisks_block_set_preferred_device
 udisks_block_set_size
+udisks_block_set_read_only
 udisks_block_set_symlinks
 udisks_block_set_hint_system
 udisks_block_set_hint_ignore
index 5b85e63..b246f6f 100644 (file)
@@ -598,6 +598,7 @@ udisks_linux_block_update (UDisksLinuxBlock        *block,
   guint64 size;
   gboolean media_available;
   gboolean media_change_detected;
+  gboolean read_only;
 
   drive = NULL;
 
@@ -615,11 +616,15 @@ udisks_linux_block_update (UDisksLinuxBlock        *block,
   udisks_block_set_device (iface, device_file);
   udisks_block_set_symlinks (iface, symlinks);
   udisks_block_set_device_number (iface, dev);
+
   size = udisks_daemon_util_block_get_size (device,
                                             &media_available,
                                             &media_change_detected);
   udisks_block_set_size (iface, size);
 
+  read_only = g_udev_device_get_sysfs_attr_as_boolean (device, "ro");
+  udisks_block_set_read_only (iface, read_only);
+
   /* dm-crypt
    *
    * TODO: this might not be the best way to determine if the device-mapper device