Revert "Revert "Description : Adding fstab for lazy mount"" 76/85476/2 accepted/tizen/common/20160825.152043 accepted/tizen/ivi/20160829.040424 accepted/tizen/mobile/20160829.040330 accepted/tizen/tv/20160829.040342 accepted/tizen/wearable/20160829.040406 submit/tizen/20160825.094741 submit/tizen/20160826.022147 submit/tizen/20160826.052212
authorWoo Chang Kim <wchang.kim@samsung.com>
Thu, 25 Aug 2016 09:00:32 +0000 (02:00 -0700)
committerwchang kim <wchang.kim@samsung.com>
Thu, 25 Aug 2016 09:32:03 +0000 (18:32 +0900)
This reverts commit b63cf7d6105a8866d82d7c8110eaa19fae0044d0.

Change-Id: I80b98406dbe1408fda9786de3b9103854eab0211

etc/fstab_initrd_lazymnt [new file with mode: 0644]
etc/fstab_lazymnt [new file with mode: 0644]
packaging/system-plugin.spec
scripts/mount-user.sh
units/lazy_mount.service
units/wait-user-mount.service [new file with mode: 0644]

diff --git a/etc/fstab_initrd_lazymnt b/etc/fstab_initrd_lazymnt
new file mode 100644 (file)
index 0000000..4c80e4d
--- /dev/null
@@ -0,0 +1,6 @@
+# In case of using MCD initrd, / and /opt is already mounted by initrd
+# Thus, this patch is temporary files for wearable.
+# Basically, initrd should consider this issue.
+# <file system> <mount point>   <type>  <options>        <dump> <pass>
+/dev/root       /               ext4    defaults,noatime 0      1
+PARTLABEL=system-data  /opt     ext4    defaults,noatime 0      2
diff --git a/etc/fstab_lazymnt b/etc/fstab_lazymnt
new file mode 100644 (file)
index 0000000..02154dc
--- /dev/null
@@ -0,0 +1,3 @@
+# <file system> <mount point>   <type>  <options>        <dump> <pass>
+/dev/root       /               ext4    defaults,noatime 0      1
+LABEL=system-data /opt          ext4    defaults,noatime 0      2
index 16998b3..3b7b4ae 100644 (file)
@@ -1,6 +1,8 @@
 #%define _unpackaged_files_terminate_build 0
 #%define debug_package %{nil}
 
+%define temp_wait_mount 1
+
 Name:      system-plugin
 Summary:   Target specific system configuration files
 Version:   0.1
@@ -152,6 +154,14 @@ mkdir -p %{buildroot}%{_sysconfdir}
 install -m 644 etc/fstab %{buildroot}%{_sysconfdir}
 # ugly temporary patch for initrd wearable
 install -m 644 etc/fstab_initrd %{buildroot}%{_sysconfdir}
+# lazymnt
+install -m 644 etc/fstab_lazymnt %{buildroot}%{_sysconfdir}
+install -m 644 etc/fstab_initrd_lazymnt %{buildroot}%{_sysconfdir}
+%if %{temp_wait_mount}
+mkdir -p %{buildroot}%{_unitdir_user}/basic.target.wants
+install -m 644 units/wait-user-mount.service %{buildroot}%{_unitdir_user}
+ln -s ../wait-user-mount.service %{buildroot}%{_unitdir_user}/basic.target.wants/wait-user-mount.service
+%endif
 
 # fstrim
 mkdir -p %{buildroot}%{_unitdir}/graphical.target.wants
@@ -203,7 +213,7 @@ systemctl daemon-reload
 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-system\x2ddata.service
 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-user.service
 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dlabel-rootfs.service
-%{_sysconfdir}/fstab
+%{_sysconfdir}/fstab_lazymnt
 %{_unitdir}/graphical.target.wants/tizen-fstrim-user.timer
 %{_unitdir}/tizen-fstrim-user.timer
 %{_unitdir}/tizen-fstrim-user.service
@@ -232,7 +242,10 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
 # fstab for tm1
 %post spreadtrum
 rm %{_sysconfdir}/fstab
-mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
+mv %{_sysconfdir}/fstab_initrd_lazymnt %{_sysconfdir}/fstab
+%post n4
+rm %{_sysconfdir}/fstab
+mv %{_sysconfdir}/fstab_lazymnt %{_sysconfdir}/fstab
 
 %files spreadtrum
 %manifest %{name}.manifest
@@ -240,7 +253,7 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
 /csa
 %{_prefix}/lib/udev/rules.d/51-system-plugin-spreadtrum.rules
 %{_unitdir}/tizen-system-env.service
-%{_sysconfdir}/fstab_initrd
+%{_sysconfdir}/fstab_initrd_lazymnt
 %{_unitdir}/basic.target.wants/tizen-system-env.service
 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dpartlabel-user.service
 %{_unitdir}/basic.target.wants/resize2fs@dev-disk-by\x2dpartlabel-system\x2ddata.service
@@ -262,6 +275,11 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
 %{_unitdir}/lazy_mount.path
 %{_unitdir}/lazy_mount.service
 %{_bindir}/mount-user.sh
+%if %{temp_wait_mount}
+%{_bindir}/test_lazymount
+%{_unitdir_user}/basic.target.wants/wait-user-mount.service
+%{_unitdir_user}/wait-user-mount.service
+%endif
 
 %files -n liblazymount-devel
 %defattr(-,root,root,-)
@@ -269,7 +287,9 @@ mv %{_sysconfdir}/fstab_initrd %{_sysconfdir}/fstab
 %{_libdir}/liblazymount.so
 %{_includedir}/lazymount/lazy_mount.h
 %{_libdir}/pkgconfig/liblazymount.pc
+%if ! %{temp_wait_mount}
 %{_bindir}/test_lazymount
+%endif
 
 %files -n system-upgrade
 %{_datadir}/upgrade
index d761431..2210516 100644 (file)
@@ -4,7 +4,17 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin
 USER_DISK=`ls /dev/disk/by-partlabel/ | grep -i user`
 USER_MNT=/opt/usr
 
-mount | grep "/opt/usr"
+if [ -f /tmp/.lazy_mount ]
+then
+rm -f /tmp/.lazy_mount
+fi
+
+if [ -f /run/.unlock_mnt ]
+then
+rm -f /run/.unlock_mnt
+fi
+
+mount | grep "$USER_MNT " > /dev/null
 
 if [ $? = "0" ]
 then
@@ -12,4 +22,5 @@ touch /run/.unlock_mnt
 else
 /usr/bin/mount PARTLABEL=$USER_DISK $USER_MNT
 touch /run/.unlock_mnt
+chsmack -a "_" $USER_MNT
 fi
index e1f4f46..8d4d492 100644 (file)
@@ -1,10 +1,8 @@
 [Unit]
 Description=Mount /opt/usr
-#ConditionPathIsMountPoint = !/opt/usr
 
 [Service]
 Type=oneshot
-SmackProcessLabel=System
-ExecStartPre=/usr/bin/rm -f /run/.unlock_mnt /tmp/.lazy_mount
+SmackProcessLabel=System::Privileged
 ExecStart=/usr/bin/mount-user.sh
 SuccessExitStatus=0
diff --git a/units/wait-user-mount.service b/units/wait-user-mount.service
new file mode 100644 (file)
index 0000000..b648197
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Description=Wait user mount
+After=starter.service
+Before=basic.target
+DefaultDependencies=no
+
+[Service]
+Type=notify
+ExecStart=/usr/bin/test_lazymount wait
+TimeoutStartSec=365d
+RemainAfterExit=yes