#include "libfstools.h"
#include "volume.h"
+#ifndef GLOB_ONLYDIR
+#define GLOB_ONLYDIR 0x100
+#endif
+
#define SWITCH_JFFS2 "/tmp/.switch_jffs2"
+#define OVERLAYDIR "/rom/overlay"
static bool keep_sysupgrade;
return -1;
}
- creat("/tmp/.switch_jffs2", 0600);
- ret = mount(v->blk, "/rom/overlay", "jffs2", MS_NOATIME, NULL);
- unlink("/tmp/.switch_jffs2");
+ creat(SWITCH_JFFS2, 0600);
+ ret = mount(v->blk, OVERLAYDIR, "jffs2", MS_NOATIME, NULL);
+ unlink(SWITCH_JFFS2);
if (ret) {
- ULOG_ERR("failed - mount -t jffs2 %s /rom/overlay: %m\n", v->blk);
+ ULOG_ERR("failed - mount -t jffs2 %s %s: %m\n", v->blk, OVERLAYDIR);
return -1;
}
+ selinux_restorecon(OVERLAYDIR);
if (mount("none", "/", NULL, MS_NOATIME | MS_REMOUNT, 0)) {
ULOG_ERR("failed - mount -o remount,ro none: %m\n");
return -1;
}
- if (mount(v->blk, "/tmp/overlay", fstype, MS_NOATIME, NULL)) {
+ if (mount(v->blk, "/tmp/overlay", fstype,
+#ifdef OVL_MOUNT_FULL_ACCESS_TIME
+ MS_RELATIME,
+#else
+ MS_NOATIME,
+#endif
+#ifdef OVL_MOUNT_COMPRESS_ZLIB
+ "compr=zlib"
+#else
+ NULL
+#endif
+ )) {
ULOG_ERR("failed to mount -t %s %s /tmp/overlay: %m\n",
fstype, v->blk);
return -1;