From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684339518; x=1686931518; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=fTX2Z7cn49quJj3MJv7Jk2IbfGl7W34RPSPoZMAh/N0=; b=AjVoY52nOvl6zIdJ3heCgd2cAe9+1LLMp4cPlMLUEWAcgKZ003lG4nlsyahXy1BxcF YHiMtavf6d45lfyAsLWW4Xv1rswbfpCgnruggynZ6T2xEU9knKQQkCemDx845SVcQVsN CfrsQMpvWFNRUTOnDAr8fDhH4Z7oefeHA6V9DhFoHJcz2YEk0sf+tsQQIK9VEBDn4GT/ ImsWXew1QP7sD/ZGt75WYAC9jfTQ6stRaRyT6/nhfxGakNtSDDh11xHo/qMCRgSenzBd Fa+xWypH98MUyj5ZELGHdmmlnR6sONXoaA/PhdwnYHyCWN9EtnQgy6LrA+GsTXJovpwM snjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684339518; x=1686931518; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fTX2Z7cn49quJj3MJv7Jk2IbfGl7W34RPSPoZMAh/N0=; b=MEljMkMXPjhYmFVJna9YyIkA02NBcGpRC4bocWj/bdh4uBji8Ab8c9S7SVBoTC5R17 1nG3Bp/dnkWdut5JioscU+7YF3OekYGP9Va4jvsGKOH9P9sURx2KrSFaR8RRfiERtIbh N7NKoVJmajOcTpQb/8Yi23rbQkMfz03b8h+VAOfU8g0vxHrTACC48Vnpvl0hREHzYny8 AWf8FoQsb8FMs9E9uuOKFQFuUXIcEYu4ne0FPJE21nYPCtndpvQpwgctjdypAv0BIEH4 78A7varq6tqbGe0ffmw4p1/abW9bAqQs+p4/7ssa8xHD7wLJxEmu1jnKBF5KmN/s2gjP adbQ== X-Gm-Message-State: AC+VfDxfHT3+HzFwK8PsFFau9DfKe2tzUrMvRDVd/9wzYYBnJUXBlHCH If2ZEy9b7SnGH4ybiO0hwvM2hNN5fu8= X-Google-Smtp-Source: ACHHUZ6QodhPOANEm7d8Gobsrpz8H+lP/el43DX7Aa4d45Y581AwG6SWw4zgSNGtawYOFoBUnsC9hg== X-Received: by 2002:a5d:5409:0:b0:309:3b8d:16a8 with SMTP id g9-20020a5d5409000000b003093b8d16a8mr933758wrv.50.1684339518267; Wed, 17 May 2023 09:05:18 -0700 (PDT) From: Alexey Gladkov To: make-initrd@lists.altlinux.org Date: Wed, 17 May 2023 18:04:42 +0200 Message-Id: <9b76d23c4101232d96ccb4a9e7db004f60c239f4.1684332365.git.gladkov.alexey@gmail.com> X-Mailer: git-send-email 2.33.8 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [make-initrd] [PATCH 3/3] feature/network: Use flock-based locking X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 May 2023 16:05:21 -0000 Archived-At: List-Archive: Signed-off-by: Alexey Gladkov --- features/network/data/lib/network/config | 8 -------- features/network/data/lib/network/hostname | 10 +++------- features/network/data/lib/network/resolvconf | 10 +++------- features/network/data/lib/network/udhcpc4.script | 12 ++++++------ 4 files changed, 12 insertions(+), 28 deletions(-) diff --git a/features/network/data/lib/network/config b/features/network/data/lib/network/config index c3a8dbb1..418b03b6 100755 --- a/features/network/data/lib/network/config +++ b/features/network/data/lib/network/config @@ -1,14 +1,6 @@ #!/bin/bash -efu . shell-error - -lock="/tmp/$PROG.lock" -while ! mkdir -- "$lock" >/dev/null 2>&1; do - sleep 0.1 -done -unlock() { rmdir "$lock"; } -trap unlock EXIT - . network-sh-functions PROG="$PROG: $NET_IF" diff --git a/features/network/data/lib/network/hostname b/features/network/data/lib/network/hostname index 1160fba0..3597a495 100755 --- a/features/network/data/lib/network/hostname +++ b/features/network/data/lib/network/hostname @@ -1,18 +1,12 @@ #!/bin/bash -efu . shell-error +. shell-locks . network-sh-functions [ "$NET_EV_ACTION" = update ] || exit 0 -lock="/tmp/$PROG.lock" -while ! mkdir -- "$lock" >/dev/null 2>&1; do - sleep 0.1 -done -unlock() { rmdir "$lock"; } -trap unlock EXIT - PROG="$PROG: $NET_IF" message_time=1 @@ -20,6 +14,8 @@ get_iface_confdir && [ -f "$confdir/hostname" ] || exit 0 +fd_lock 90 "$0" + name= read -r name < "$confdir/hostname" ||: diff --git a/features/network/data/lib/network/resolvconf b/features/network/data/lib/network/resolvconf index e6e14602..67ccb8ab 100755 --- a/features/network/data/lib/network/resolvconf +++ b/features/network/data/lib/network/resolvconf @@ -1,18 +1,12 @@ #!/bin/bash -efu . shell-error +. shell-locks . network-sh-functions [ "$NET_EV_ACTION" = update ] || exit 0 -lock="/tmp/$PROG.lock" -while ! mkdir -- "$lock" >/dev/null 2>&1; do - sleep 0.1 -done -unlock() { rmdir "$lock"; } -trap unlock EXIT - PROG="$PROG: $NET_IF" message_time=1 @@ -20,6 +14,8 @@ get_iface_confdir && [ -f "$confdir/resolv.conf" ] || exit 0 +fd_lock 90 "$0" + message "write resolv.conf" tmp="$(mktemp "/etc/resolv.conf.XXXXXX")" diff --git a/features/network/data/lib/network/udhcpc4.script b/features/network/data/lib/network/udhcpc4.script index dcb1f74c..bd1b4779 100755 --- a/features/network/data/lib/network/udhcpc4.script +++ b/features/network/data/lib/network/udhcpc4.script @@ -1,5 +1,7 @@ #!/bin/bash -efu +. shell-locks + STATE="$1" PROG="${0##*/}" @@ -9,11 +11,9 @@ V="${CMDNAME##udhcpc}" INTERFACE="${interface-}" lock="/tmp/$CMDNAME.$INTERFACE.lock" -while ! mkdir -- "$lock" >/dev/null 2>&1; do - sleep 0.1 -done -unlock() { rmdir "$lock"; } -trap unlock EXIT +[ -d "$lock" ] || mkdir -p -- "$lock" + +fd_lock 90 "$lock" logfile=$( . /.initrd/initenv @@ -148,4 +148,4 @@ case "$STATE" in *) exit 0 ;; -esac +esac 90<&- -- 2.33.8