block: Check fs_usage on retrieve_udev_device() 65/162665/3 accepted/tizen/4.0/unified/20171205.155610 submit/tizen_4.0/20171205.073400
authorpr.jung <pr.jung@samsung.com>
Tue, 5 Dec 2017 01:35:31 +0000 (10:35 +0900)
committerpr.jung <pr.jung@samsung.com>
Tue, 5 Dec 2017 05:49:51 +0000 (14:49 +0900)
- fs_usage for ext4 and vfat is filesystem and for crypto_LUKS is crypto.
- There is format requests for ext4 or vfat only. (not crypto_LUKS)

Change-Id: Ic1ceb8bc57c89f1d46a5b991a04244ddc25a727d
Signed-off-by: pr.jung <pr.jung@samsung.com>
src/block/block.c

index d183b7b..0d654c9 100644 (file)
@@ -96,6 +96,7 @@
 
 #define EXTENDEDSD_MOUNT_PATH  "/opt/extendedsd"
 
+#define VFAT_NAME              "vfat"
 #define EXT4_NAME              "ext4"
 #define LUKS_NAME              "crypto_LUKS"
 #define EXTENDEDSD_NAME                "extendedsd"
@@ -1099,6 +1100,8 @@ static int retrieve_udev_device(struct block_data *data, bool mount_point_update
 {
        struct udev *udev;
        struct udev_device *dev;
+       const char *fs_type;
+       const char *fs_usage;
        int r;
        int wait;
 
@@ -1119,7 +1122,12 @@ static int retrieve_udev_device(struct block_data *data, bool mount_point_update
                        return -EPERM;
                }
 
-               if (!udev_device_get_property_value(dev, "ID_FS_TYPE"))
+               fs_type = udev_device_get_property_value(dev, "ID_FS_TYPE");
+               fs_usage = udev_device_get_property_value(dev, "ID_FS_USAGE");
+               /* fs_usage for crpto_LUKS is crypto */
+               if (!fs_type || (strncmp(fs_type, VFAT_NAME, strlen(VFAT_NAME)) && strncmp(fs_type, EXT4_NAME, strlen(EXT4_NAME))))
+                       sleep(1);
+               else if (!fs_usage || strncmp(FILESYSTEM_NAME, fs_usage, strlen(FILESYSTEM_NAME)))
                        sleep(1);
                else
                        break;