fstab/init: Move "persist" mounting to fstab and fsck it

Mount persist in fstab.

This has the advantage that we can specify "check" and get fsck done
on this read-write partition.

The disadvantage, is that a persist mount failure is catastropic to the
end user (without persist, you might have been able to use it as a wifi
tablet, but modem and sensors would likely break.)

Bug: 18151232
Change-Id: If3a3f6dd27f0dba8b8d0acb46500b67145682137
diff --git a/fstab.shamu b/fstab.shamu
index 3986190..95b0735 100644
--- a/fstab.shamu
+++ b/fstab.shamu
@@ -1,15 +1,13 @@
 # Android fstab file.
 # The filesystem that contains the filesystem checker binary (typically /system) cannot
 # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
-
-#TODO: Add 'check' as fs_mgr_flags with data partition.
-# Currently we dont have e2fsck compiled. So fs check would failed.
-
+#
 #<src>                                                <mnt_point>  <type>  <mnt_flags and options>                     <fs_mgr_flags>
 /dev/block/platform/msm_sdcc.1/by-name/system         /system      ext4    ro,barrier=1                                wait
 /dev/block/platform/msm_sdcc.1/by-name/userdata    /data        ext4    rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier    wait,check,forceencrypt=/dev/block/platform/msm_sdcc.1/by-name/metadata
 /dev/block/platform/msm_sdcc.1/by-name/cache       /cache       ext4    rw,noatime,nosuid,nodev,barrier=1,data=ordered   wait,check
 /dev/block/platform/msm_sdcc.1/by-name/modem       /firmware    ext4    ro,barrier=1,context=u:object_r:firmware_file:s0    wait
+/dev/block/platform/msm_sdcc.1/by-name/persist     /persist     ext4    rw,nosuid,nodev,barrier=1                      wait,check
 /dev/block/platform/msm_sdcc.1/by-name/boot         /boot           emmc    defaults                                                        defaults
 /dev/block/platform/msm_sdcc.1/by-name/recovery     /recovery       emmc    defaults                                                        defaults
 /dev/block/platform/msm_sdcc.1/by-name/misc         /misc           emmc    defaults                                                        defaults
diff --git a/init.shamu.rc b/init.shamu.rc
index 5e2ba42..ffb01bf 100644
--- a/init.shamu.rc
+++ b/init.shamu.rc
@@ -51,9 +51,12 @@
     # Keeping following partitions outside fstab file. As user may not have
     # these partition flashed on the device. Failure to mount any partition in fstab file
     # results in failure to launch late-start class.
+    wait /dev/block/platform/msm_sdcc.1/by-name/oem
+    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/oem /oem ro nosuid nodev context=u:object_r:oemfs:s0
 
-    wait /dev/block/platform/msm_sdcc.1/by-name/persist
-    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev barrier=1
+    mkdir /fsg 0755 root root
+    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs3 /fsg ro nosuid nodev barrier=0 context=u:object_r:fsg_file:s0
+
     restorecon_recursive /persist
     mkdir /persist/data 0700 system system
     mkdir /persist/data/sfs 0700 system system
@@ -62,12 +65,6 @@
     mkdir /persist/public/hiddenmenu 0775 system radio
     mkdir /persist/public/hiddenmenu/data 0775 system radio
 
-    wait /dev/block/platform/msm_sdcc.1/by-name/oem
-    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/oem /oem ro nosuid nodev context=u:object_r:oemfs:s0
-
-    mkdir /fsg 0755 root root
-    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs3 /fsg ro nosuid nodev barrier=0 context=u:object_r:fsg_file:s0
-
     # Enable rmnet data and aggregation
     setprop persist.rmnet.mux enabled
     setprop persist.rmnet.data.enable true