summaryrefslogtreecommitdiff
path: root/libfstools
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2016-01-10 18:35:36 +0100
committerFelix Fietkau <nbd@openwrt.org>2016-01-10 18:35:36 +0100
commit96415afecef35766332067f4205ef3b2c7561d21 (patch)
tree4549f3cabacb2ed1db035afa06454b21feef1a14 /libfstools
parentd90165cdbdac40e6e2699d831e13473479d8cb79 (diff)
downloadfstools-96415afecef35766332067f4205ef3b2c7561d21.tar.gz
fstools: check existing filesystem state before writing the new one
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'libfstools')
-rw-r--r--libfstools/overlay.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libfstools/overlay.c b/libfstools/overlay.c
index 7f69606..cdac23e 100644
--- a/libfstools/overlay.c
+++ b/libfstools/overlay.c
@@ -311,6 +311,9 @@ int fs_state_set(const char *dir, enum fs_state state)
char valstr[16];
char *path;
+ if (fs_state_get(dir) == state)
+ return 0;
+
path = alloca(strlen(dir) + 1 + sizeof("/.fs_state"));
sprintf(path, "%s/.fs_state", dir);
unlink(path);