block: Need to set VCONFKEY_SYSMAN_MMC_EXTENDEDINTERNAL_MOUNTED for extended internal... 50/152450/1
authorpr.jung <pr.jung@samsung.com>
Mon, 25 Sep 2017 07:32:20 +0000 (16:32 +0900)
committerHyotaek Shim <hyotaek.shim@samsung.com>
Tue, 26 Sep 2017 07:25:45 +0000 (07:25 +0000)
Change-Id: If4b596e97f0605d52113b185225ffdadda3a3ad6
Signed-off-by: pr.jung <pr.jung@samsung.com>
(cherry picked from commit 6f9731069c7c99447548293e84fe1802a989399f)

src/block/block.c
src/block/block.h
src/block/mmc.c

index 4e5d6f1..346812a 100644 (file)
@@ -263,13 +263,22 @@ static void broadcast_block_info(enum block_dev_operation op,
                if (ops->block_type != data->block_type)
                        continue;
                // TODO What happend on extended internal storage case?
-               if (op == BLOCK_DEV_MOUNT)
-                       ops->mounted(data, result);
-               else if (op == BLOCK_DEV_UNMOUNT)
-                       ops->unmounted(data, result);
-               else if (op == BLOCK_DEV_FORMAT)
-                       ops->formatted(data, result);
-               else if (op == BLOCK_DEV_INSERT)
+               if (op == BLOCK_DEV_MOUNT) {
+                       if (data->block_type == BLOCK_MMC_EXTENDED_INTERNAL_DEV)
+                               ops->mounted(data, result, true);
+                       else
+                               ops->mounted(data, result, false);
+               } else if (op == BLOCK_DEV_UNMOUNT) {
+                       if (data->block_type == BLOCK_MMC_EXTENDED_INTERNAL_DEV)
+                               ops->unmounted(data, result, true);
+                       else
+                               ops->unmounted(data, result, false);
+               } else if (op == BLOCK_DEV_FORMAT) {
+                       if (data->block_type == BLOCK_MMC_EXTENDED_INTERNAL_DEV)
+                               ops->formatted(data, result, true);
+                       else
+                               ops->formatted(data, result, false);
+               } else if (op == BLOCK_DEV_INSERT)
                        ops->inserted(data);
                else if (op == BLOCK_DEV_REMOVE)
                        ops->removed(data);
index 597204f..57b02b5 100644 (file)
@@ -87,9 +87,9 @@ struct block_data {
 struct block_dev_ops {
        const char *name;
        enum block_device_type block_type;
-       void (*mounted) (struct block_data *data, int result);
-       void (*unmounted) (struct block_data *data, int result);
-       void (*formatted) (struct block_data *data, int result);
+       void (*mounted) (struct block_data *data, int result, bool extended);
+       void (*unmounted) (struct block_data *data, int result, bool extended);
+       void (*formatted) (struct block_data *data, int result, bool extended);
        void (*inserted) (struct block_data *data);
        void (*removed) (struct block_data *data);
 };
index 674cdcc..80ec367 100644 (file)
@@ -48,7 +48,7 @@ static void mmc_update_mount_state(int state)
                old = state;
 }
 
-static void mmc_mount(struct block_data *data, int result)
+static void mmc_mount(struct block_data *data, int result, bool extended)
 {
        int r;
 
@@ -68,11 +68,14 @@ static void mmc_mount(struct block_data *data, int result)
        if (r < 0)
                _E("setxattr error : %d", errno);
 
-       mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+       if (extended)
+               mmc_update_state(VCONFKEY_SYSMAN_MMC_EXTENDEDINTERNAL_MOUNTED);
+       else
+               mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
        mmc_update_mount_state(VCONFKEY_SYSMAN_MMC_MOUNT_COMPLETED);
 }
 
-static void mmc_unmount(struct block_data *data, int result)
+static void mmc_unmount(struct block_data *data, int result, bool extended)
 {
        /* Only the primary partition is valid. */
        if (!data || !data->primary)
@@ -80,18 +83,26 @@ static void mmc_unmount(struct block_data *data, int result)
 
        if (result == 0)
                mmc_update_state(VCONFKEY_SYSMAN_MMC_INSERTED_NOT_MOUNTED);
-       else
-               mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+       else {
+               if (extended)
+                       mmc_update_state(VCONFKEY_SYSMAN_MMC_EXTENDEDINTERNAL_MOUNTED);
+               else
+                       mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+       }
 }
 
-static void mmc_format(struct block_data *data, int result)
+static void mmc_format(struct block_data *data, int result, bool extended)
 {
        /* Only the primary partition is valid. */
        if (!data || !data->primary)
                return;
 
        if (data->state == BLOCK_MOUNT) {
-               mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+               if (extended)
+                       mmc_update_state(VCONFKEY_SYSMAN_MMC_EXTENDEDINTERNAL_MOUNTED);
+               else
+                       mmc_update_state(VCONFKEY_SYSMAN_MMC_MOUNTED);
+
                mmc_update_mount_state(VCONFKEY_SYSMAN_MMC_MOUNT_COMPLETED);
        }
 }