luci-mod-system: refine flash reset

We determine flash reset capability by checking overlayfs in /proc/mounts

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
pull/3145/head
Chen Minqiang 2019-09-25 09:02:59 +08:00
parent 90c52a1782
commit 29aad47121
2 changed files with 5 additions and 8 deletions

View File

@ -34,7 +34,7 @@
"/proc/mtd": [ "read" ], "/proc/mtd": [ "read" ],
"/proc/partitions": [ "read" ], "/proc/partitions": [ "read" ],
"/proc/sys/kernel/hostname": [ "read" ], "/proc/sys/kernel/hostname": [ "read" ],
"/sys/devices/virtual/ubi/*/name": [ "read" ] "/proc/mounts": [ "read" ]
}, },
"ubus": { "ubus": {
"file": [ "list", "read", "stat" ], "file": [ "list", "read", "stat" ],

View File

@ -143,18 +143,14 @@ var mapdata = { actions: {}, config: {} };
return L.view.extend({ return L.view.extend({
load: function() { load: function() {
var max_ubi = 2, max_ubi_vol = 4;
var tasks = [ var tasks = [
L.resolveDefault(fs.stat('/lib/upgrade/platform.sh'), {}), L.resolveDefault(fs.stat('/lib/upgrade/platform.sh'), {}),
fs.trimmed('/proc/sys/kernel/hostname'), fs.trimmed('/proc/sys/kernel/hostname'),
fs.trimmed('/proc/mtd'), fs.trimmed('/proc/mtd'),
fs.trimmed('/proc/partitions') fs.trimmed('/proc/partitions'),
fs.trimmed('/proc/mounts')
]; ];
for (var i = 0; i < max_ubi; i++)
for (var j = 0; j < max_ubi_vol; j++)
tasks.push(fs.trimmed('/sys/devices/virtual/ubi/ubi%d/ubi%d_%d/name'.format(i, i, j)));
return Promise.all(tasks); return Promise.all(tasks);
}, },
@ -428,7 +424,8 @@ return L.view.extend({
hostname = rpc_replies[1], hostname = rpc_replies[1],
procmtd = rpc_replies[2], procmtd = rpc_replies[2],
procpart = rpc_replies[3], procpart = rpc_replies[3],
has_rootfs_data = (procmtd.match(/"rootfs_data"/) != null) || rpc_replies.slice(4).filter(function(n) { return n == 'rootfs_data' })[0], procmounts = rpc_replies[4],
has_rootfs_data = (procmtd.match(/"rootfs_data"/) != null) || (procmounts.match("overlayfs:\/overlay \/ ") != null),
storage_size = findStorageSize(procmtd, procpart), storage_size = findStorageSize(procmtd, procpart),
m, s, o, ss; m, s, o, ss;