From patchwork Fri Feb 9 16:18:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 871469 X-Patchwork-Delegate: zajec5@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="syirARnK"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="G6lorXM8"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zdKxs2zKHz9s4q for ; Sat, 10 Feb 2018 03:18:57 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Subject:MIME-Version:Message-Id:Date:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=sN39O67NxKQuDm6RASZRdEZ4njbwhGSwqMXUQDesLqs=; b=syirARnKvvZwoC zdiD9YNotlEVEBc2jPDOonBwbn2i3dM/Q4TBktCuwdenl0+uhsPgTVqh/FiC/ispsnPZImn6Ze66J nk7i5AXcSUlxyYn5jB1XHo9cNp3elaU6YskmcgTgayiSmVHYOlM5gbe1wEprbLYVBZJI7Be/ykQkm tsCFmtyXfiZbfKmNjTnGzdUYVHF92ypwsIzZMpYOVcHjonJKyP2x1ycSKXkHZ9ZgSlGlmG6IZ6JQ1 lMaKd1wIZTuEjJQIIKWd1nZ4HysE0KcC+VvEjdsZCHR7v3xtIDU4jUvEN1zAUHbPK2vnijtH+jtCl ZUYWU3/aKY+tlcPXRvMw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1ekBO2-0003gD-Sj; Fri, 09 Feb 2018 16:18:54 +0000 Received: from mail-lf0-x244.google.com ([2a00:1450:4010:c07::244]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1ekBNs-0003Wt-Uo for lede-dev@lists.infradead.org; Fri, 09 Feb 2018 16:18:46 +0000 Received: by mail-lf0-x244.google.com with SMTP id f136so11937179lff.8 for ; Fri, 09 Feb 2018 08:18:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=HBNv2OVJn8wevSgwbt9MhwDNatMZLXZIJhn0EtABHjk=; b=G6lorXM8fl5unDmxbWsxIHyu9R4yU4Z1kvP1sdWGA0n8UXF1avWy8dO7b7YgKGDoKO dpYuNgnhntQCbK4S9A1ViTEENQgkqrpGYzbOEbIXMSHoS10wBupnrACTZGFs4aYWt1r7 uMrwIaQKOTVR1Ld8dXDTQzEOZwyUs8DD8wSf7DCKMBOPYVbM8e3ez65ewj08knbXZ7Ri zvLepT08QRxjt6Eg/Trk/WHP8rdl+5atFQnYFVmtAE0Cg4RfArf5eOvLha62jjx7XeB8 yBBI/9r2k9NxMnNjeGt7OS/2njthwAPk54vYym2Rk1jGtvcwphlciRl5Jj1e9u1YefVh XGkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=HBNv2OVJn8wevSgwbt9MhwDNatMZLXZIJhn0EtABHjk=; b=kqzP+Th/ni2hXzHBSZ+YyejE40X37058+PRcD9GK4BkHe3t29CIpMa5cXSRfckJbR6 hzJ89y8uSfiKTJiB+3Ysvc2W6VTQBBu8uSrKa7y0/GEhzZvtB97f33YLWGgJDOahezAz eAeEIHBor4SRSAJ5rkdd9efMrNCx/XdQ17o4I+kUeZXSQ7kR66pOaafvsfndJ0P8sKJF z1RDdoif83yRlc6CFGv8aJBhtQorzCtsRVuRfiyLeD8NAQThDDiriuVM+GfktAjptHHN sVhLim5YmRPKhYPfelxMjZ9vUug3bSMlfrDciurkbZtRii+elUbq5+hPWQo3I2fAMfO0 TVww== X-Gm-Message-State: APf1xPBb1j7Gu2wcmhspLhI5x4v+IdB9K/KrhFhOdKxrtfupu0BZyZbH 0vCab930l9RMpD8cvN5TcfU= X-Google-Smtp-Source: AH8x224gm+0iKZqIzvjvcQC17f0yAEQ7g1533S2T0vSwEuEbzQffHGQ3TrjEDDcdPaDc9I0u2e46Jg== X-Received: by 10.46.60.24 with SMTP id j24mr2409105lja.140.1518193112339; Fri, 09 Feb 2018 08:18:32 -0800 (PST) Received: from linux-samsung.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by smtp.gmail.com with ESMTPSA id u13sm477396ljd.64.2018.02.09.08.18.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 08:18:31 -0800 (PST) From: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= To: John Crispin , lede-dev@lists.infradead.org Date: Fri, 9 Feb 2018 17:18:20 +0100 Message-Id: <20180209161821.21590-1-zajec5@gmail.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -1.8 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.8 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2a00:1450:4010:c07:0:0:0:244 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (zajec5[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (zajec5[at]gmail.com) -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid Subject: [LEDE-DEV] [PATCH mountd 1/2] mount: struct mount: replace "mounted" and "ignore" fileds with a "status" X-BeenThere: lede-dev@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= Sender: "Lede-dev" Errors-To: lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Rafał Miłecki There is no need to store status using these 2 separated fields. Obviously ignored mount should never get mounted. This change will also allow adding more statuses easily in the future if needed. Signed-off-by: Rafał Miłecki --- mount.c | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/mount.c b/mount.c index 646cc30..2d34a91 100644 --- a/mount.c +++ b/mount.c @@ -33,6 +33,19 @@ int mount_new(char *path, char *dev); static struct list_head mounts; +/** + * enum status - status of mount entry + * + * @STATUS_UNMOUNTED: currently not mounted + * @STATUS_MOUNTED: mounted & ready for usage + * @STATUS_IGNORE: entry should be ignored and never mounted + */ +enum status { + STATUS_UNMOUNTED = 0, + STATUS_MOUNTED, + STATUS_IGNORE, +}; + struct mount { struct list_head list; char name[64]; @@ -41,8 +54,7 @@ struct mount { char vendor[64]; char model[64]; char rev[64]; - int mounted; - int ignore; + enum status status; char size[64]; char sector_size[64]; int fs; @@ -95,7 +107,7 @@ static void mount_dump_uci_state(void) ucix_add_option(ctx, mountd, q->serial, "disc", t); ucix_add_option(ctx, mountd, q->serial, "sector_size", q->sector_size); snprintf(t, 64, "part%dmounted", atoi(&q->dev[3])); - ucix_add_option(ctx, mountd, q->serial, t, (q->mounted)?("1"):("0")); + ucix_add_option(ctx, mountd, q->serial, t, q->status == STATUS_MOUNTED ? "1" : "0"); ucix_add_option(ctx, mountd, q->serial, "vendor", q->vendor); ucix_add_option(ctx, mountd, q->serial, "model", q->model); ucix_add_option(ctx, mountd, q->serial, "rev", q->rev); @@ -106,9 +118,9 @@ static void mount_dump_uci_state(void) snprintf(t, 64, "fs%d", atoi(&q->dev[3])); ucix_add_option(ctx, mountd, q->serial, t, fs_names[q->fs]); } - if(q->mounted) + if (q->status == STATUS_MOUNTED) mounted++; - if((!q->ignore) && q->size && q->sector_size) + if ((q->status != STATUS_IGNORE) && q->size && q->sector_size) size = size + (((unsigned long long int)atoi(q->size)) * ((unsigned long long int)atoi(q->sector_size))); } ucix_add_option_int(ctx, mountd, mountd, "mounted", mounted); @@ -150,12 +162,13 @@ static void mount_add_list(char *name, char *dev, char *serial, strncpy(mount->serial, serial, 64); strncpy(mount->size, size, 64); strncpy(mount->sector_size, sector_size, 64); - mount->ignore = ignore; - mount->mounted = 0; + mount->status = STATUS_UNMOUNTED; mount->fs = fs; list_add(&mount->list, &mounts); - if (!mount->ignore) - { + + if (ignore) { + mount->status = STATUS_IGNORE; + } else { log_printf("new mount : %s -> %s (%s)\n", name, dev, fs_names[mount->fs]); snprintf(tmp, 64, "%s%s", uci_path, name); snprintf(tmp2, 64, "/tmp/run/mountd/%s", dev); @@ -219,7 +232,7 @@ int mount_new(char *path, char *dev) log_printf("request for invalid path %s%s\n", path, dev); return -1; } - if(mount->ignore || mount->mounted || mount->fs == EXTENDED) + if (mount->status == STATUS_IGNORE || mount->status == STATUS_MOUNTED || mount->fs == EXTENDED) return -1; snprintf(tmp, 256, "%s%s", path, mount->dev); log_printf("mounting %s\n", tmp); @@ -298,7 +311,7 @@ int mount_new(char *path, char *dev) } if(mount_wait_for_disc(mount->dev) == 0) { - mount->mounted = 1; + mount->status = STATUS_MOUNTED; mount_dump_uci_state(); } else return -1; return 0; @@ -317,7 +330,7 @@ int mount_remove(char *path, char *dev) rmdir(tmp); mount = mount_find(0, dev); if(mount) - mount->mounted = 0; + mount->status = STATUS_UNMOUNTED; log_printf("finished unmounting\n"); mount_dump_uci_state(); return 0; @@ -571,7 +584,7 @@ static void mount_dev_del(struct mount *mount) { char tmp[256]; - if (mount->mounted) { + if (mount->status == STATUS_MOUNTED) { snprintf(tmp, 256, "%s%s", "/tmp/run/mountd/", mount->name); log_printf("%s has dissappeared ... unmounting\n", tmp); snprintf(tmp, 256, "%s%s", "/tmp/run/mountd/", mount->dev); @@ -589,7 +602,7 @@ void mount_dump_list(void) list_for_each(p, &mounts) { struct mount *q = container_of(p, struct mount, list); - log_printf("* %s %s %d\n", q->name, q->dev, q->mounted); + log_printf("* %s %s %d\n", q->name, q->dev, q->status == STATUS_MOUNTED); } } @@ -727,11 +740,11 @@ static void mount_enum_drives(void) ctx = ucix_init("mountd"); t = ucix_get_option(ctx, "mountd", q->serial, tmp); ucix_cleanup(ctx); - if(t && !q->mounted) + if (t && q->status != STATUS_MOUNTED) { if(!strcmp(t, "0")) { - if(!q->ignore) + if (q->status != STATUS_IGNORE) del = 1; } else if(!strcmp(t, "1")) { @@ -749,7 +762,7 @@ static void mount_enum_drives(void) p->next->prev = p->prev; p = p->next; log_printf("removing %s\n", q->dev); - if (q->mounted) { + if (q->status == STATUS_MOUNTED) { snprintf(tmp, 64, "%s%s", "/tmp/run/mountd/", q->dev); rmdir(tmp); snprintf(tmp, 64, "%s%s", uci_path, q->name); From patchwork Fri Feb 9 16:18:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 871468 X-Patchwork-Delegate: zajec5@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="BsObV9qv"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QkAYPrFG"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zdKxl2Bb5z9s7g for ; Sat, 10 Feb 2018 03:18:51 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Subject:MIME-Version:References: In-Reply-To:Message-Id:Date:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fWZBhKqLjpx6cUjgjtG0WPpibwJENb2PCjTwSIxVDMs=; b=BsObV9qvdIuejd e4kk1TlhA4X2qGWY7YKytOYWOylIJEliiytkuKNeGHg46Uw82CHI8bO6Qa/kN2+FWh97rJRhSs+sz UVZmXT5Dqb0hd0Q2NtSTbpPvuVN6YaVdB2jDN/3whYnMDYt70z+LSQ+SrxRm9hvCfL/IS/IiVPunQ hkV1277POk9OaPCfhM4TqM8Fndgyf3l95F77eIPB4prPZRE9VpN527iLFzmwFTatRzvzDxEoNWRwR tq5MHjETy5xsmscpbVHmhfJ3P/VgMY6c2+jaPhx8exLp7eNpXUtEFGQWLwmZfu4F7DfBqikfWiDam m4XiiHWcI7/ZYFiWZGDw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1ekBNv-0003Y5-IL; Fri, 09 Feb 2018 16:18:47 +0000 Received: from mail-lf0-x244.google.com ([2a00:1450:4010:c07::244]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1ekBNs-0003Wx-Up for lede-dev@lists.infradead.org; Fri, 09 Feb 2018 16:18:46 +0000 Received: by mail-lf0-x244.google.com with SMTP id h78so4776428lfg.6 for ; Fri, 09 Feb 2018 08:18:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wujuc5RR/IQFtzKJP4Z/ZUw8XfiOBe6pQBrpr3ILPhs=; b=QkAYPrFGlAcVlktuTS5ZUaM71vPmkdQWkHH/aSemPYMC3RDuuX8fKGfWJvkvaWco4L cHw1OVO6clY+iw7n7sEBCROYC7P09TOF+p+siMk0a+EpvZZwlYNVqhc2ADa7/OAaI6KR rNSZiSZJyVXnCDFjXfP3V/JJZmZwY6ZjCXT3zLJ+IOS5+RAqSV7kpVeviZS4clgDsk7a Hia+RIb/l5NPwBzU6RyyttK/t3+1cY+B/8S2Kt1ugDwc3wAAqEZVxfwAWu3yIHAKEj1X PvFWf/rLQREneKo8qVhf5UR3Im4dhx+MzjDwgvvue59Hd13aSkP1Kr41BRqUfZHg65Dn aMfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wujuc5RR/IQFtzKJP4Z/ZUw8XfiOBe6pQBrpr3ILPhs=; b=owQDbzRriA97PIEAdKcXAGGqh4iEETZwYBtquADdS2qd/2NomSc6NXGxyJr4yIlmqt v5PX45Wj0JVQEoxUQtwUIgwOeHa9GTcSdkftSMfz/KROgwEY4lHUAi+WicIX60ZkG3LE Jd/yoyKdMQ58cABE5U4cnz6FJNqP57x4Mt7hMpbsqazJAjPmDdeCcMxJzINtWM1kvmWw qgkMEpRufkR2bWHefgLFIu3MbK5c2vvQNmV3AJEhaLY9tQsqGiKgubuUCM2HtaOHaMCf NeVOgsgZuVOZ4YKC21sPRLjUIQ9RU26qER7IfSU7cBrnHtn8IgBtDG1xmuzkhygUYSIs 4lvg== X-Gm-Message-State: APf1xPCW6pgTsi+iOVbAjRHGhzhaXoFSlFeL41AqgDT8MmHH9xjFc6ps 1D5JAjNeTtIlkAfFliAQrWI= X-Google-Smtp-Source: AH8x225dz9eDxJVEHtM84A5az8V7ANOJK/H3HcYtGb+OnNAZiyn9IIB9qEu2VIQSd1BeDQ7BexCmQw== X-Received: by 10.46.91.80 with SMTP id p77mr325024ljb.122.1518193115612; Fri, 09 Feb 2018 08:18:35 -0800 (PST) Received: from linux-samsung.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by smtp.gmail.com with ESMTPSA id u13sm477396ljd.64.2018.02.09.08.18.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Feb 2018 08:18:34 -0800 (PST) From: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= To: John Crispin , lede-dev@lists.infradead.org Date: Fri, 9 Feb 2018 17:18:21 +0100 Message-Id: <20180209161821.21590-2-zajec5@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180209161821.21590-1-zajec5@gmail.com> References: <20180209161821.21590-1-zajec5@gmail.com> MIME-Version: 1.0 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -1.8 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.8 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2a00:1450:4010:c07:0:0:0:244 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (zajec5[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (zajec5[at]gmail.com) -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid Subject: [LEDE-DEV] [PATCH mountd 2/2] mount: fix removing mount point if it's expired X-BeenThere: lede-dev@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= Sender: "Lede-dev" Errors-To: lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Rafał Miłecki Kernel can report mount point as expired and when that happens mountd unmounts it. It's still important to: 1) Cleanup directories 2) Call hotplug scripts when device for such a mount disappears. Fix this by adding a new EXPIRED status and checking it when block device disappears. Signed-off-by: Rafał Miłecki --- mount.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mount.c b/mount.c index 2d34a91..cb3e03c 100644 --- a/mount.c +++ b/mount.c @@ -38,11 +38,13 @@ static struct list_head mounts; * * @STATUS_UNMOUNTED: currently not mounted * @STATUS_MOUNTED: mounted & ready for usage + * @STATUS_EXPIRED: mount expired & *temporary* unmounted * @STATUS_IGNORE: entry should be ignored and never mounted */ enum status { STATUS_UNMOUNTED = 0, STATUS_MOUNTED, + STATUS_EXPIRED, STATUS_IGNORE, }; @@ -330,7 +332,7 @@ int mount_remove(char *path, char *dev) rmdir(tmp); mount = mount_find(0, dev); if(mount) - mount->status = STATUS_UNMOUNTED; + mount->status = STATUS_EXPIRED; log_printf("finished unmounting\n"); mount_dump_uci_state(); return 0; @@ -762,7 +764,7 @@ static void mount_enum_drives(void) p->next->prev = p->prev; p = p->next; log_printf("removing %s\n", q->dev); - if (q->status == STATUS_MOUNTED) { + if (q->status == STATUS_MOUNTED || q->status == STATUS_EXPIRED) { snprintf(tmp, 64, "%s%s", "/tmp/run/mountd/", q->dev); rmdir(tmp); snprintf(tmp, 64, "%s%s", uci_path, q->name);