Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp1874125pxj; Sat, 22 May 2021 04:33:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxjHzKZWiezgzDkahO/w9HxWVEV+j98h0C0foyyYTtJua/Mi4Y7Qmy2OhvAu3pnZvPdRa+r X-Received: by 2002:a17:906:4c54:: with SMTP id d20mr14757921ejw.513.1621683231922; Sat, 22 May 2021 04:33:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621683231; cv=none; d=google.com; s=arc-20160816; b=bC7xs+xHGI/Eoe+JdTS5Vz+1YqUpGggSCiHIc1OJUYC+7BN6r4bT7Cgo83QHQiK17a YIBubPAlB6VQaD8h9/XmyqXEjHHvqEl1D6ZsOMm/466wsic7IqU0kKaKRx1hcsMu0edE i8r8Fjq3B37HHNYXpG79aQzLxSKmzYBSPftsW6w608Z2sN47iA037KY9xYAAhnTTcACr ftvgWdmIEElqPPUNj0+5Rpn8wQyjL9/jmnC90QqgGxuETP/uWF+HCdnO3ysrcocMD8PX CqJ2qiUBLpn7tuaFBvl7XGLXEAfgaBR8wkmXA74JgI0xwC+7XsoEjjDfj6WJwLVl2EE1 5znQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=5T431k7g6aKVzK1xUunLmmQKi2pgkqZ8L8xtmvs/QnA=; b=zdbRe84/s3p4SlMTKCtU16Kv29WmAui6F1fJcHIXZCvUspydOjbExzxvKA4c2qoRAq a12ps5v6WL7Pya11X43ptzgNh9s1ZDZRWKULvSI4byfRXzXkliP0UOgvlhTqPa/XlEZs pZUpK6VL+GN+QLVGWo02qsJkxAoO7izT/RwOH35r2ROujl/pt2N8/w96m9M9MpXak5s1 5V4J9p0m2GEmQlymNxtHSd3C5azY1rbu9hMSSfD9f164lr3m8epLq7oE+DAENId/RJNe t8ZKvenim11pXm9Ip2LzrJQlBThLPagnURjfc1mgchBFnWdMCFGqlG/RBzsmzzjejO+n +H5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=IZXyTd5+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m1si9688731ejj.42.2021.05.22.04.33.28; Sat, 22 May 2021 04:33:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=IZXyTd5+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231142AbhEVLdr (ORCPT + 99 others); Sat, 22 May 2021 07:33:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39540 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230318AbhEVLdq (ORCPT ); Sat, 22 May 2021 07:33:46 -0400 Received: from mail-pg1-x52b.google.com (mail-pg1-x52b.google.com [IPv6:2607:f8b0:4864:20::52b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B8E4C06138A; Sat, 22 May 2021 04:32:20 -0700 (PDT) Received: by mail-pg1-x52b.google.com with SMTP id t193so16334491pgb.4; Sat, 22 May 2021 04:32:20 -0700 (PDT) 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=5T431k7g6aKVzK1xUunLmmQKi2pgkqZ8L8xtmvs/QnA=; b=IZXyTd5+cs+5qO8U6EN1jdhr0gtYjocvlXO/go7CdYldnEukWdFqw4ALo+FTzrdEqQ HZkoFtoMVcP2X6U+T84nPphlp68QKN2k9UzMpzR3rnCw1HGUe/JjoSrk42nUJ7iG5k+Q rqL0LpamXTcCvIMautmzhYcokYUaMCxiYZ1rw4q64+YuULAnLkSgz003k3ICXnJIRNuv CNhaiJuK/cl9sWyuimfoSP/IvXJ6NuIbM9JsjGc8HgWgPWIE8neWIkCqNSlvACsbhc69 wrfC8llEUshGoSguVwjTT3aNyOmvqfdrywHx+3b6FzKsxxgdBXWyNGJIHMtLojlsILTA WjNw== 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=5T431k7g6aKVzK1xUunLmmQKi2pgkqZ8L8xtmvs/QnA=; b=hUek9Mv+6FhVWKjtYGDj9Q7TKk344oWlq4schxVlSI48g2dy8E9DlmB6Vr3s+35+Rj G6RAdRvqaQA6w37QL2+1c9u/kL6i1RCp7KHdZytWN3K8X52of6G3iW5xsXRms8UXpN+S /PyX+aPgJvih9aTeH4EeuqC4vq46yXvbcPzk25m4jWB8RULG/ICneN+lNFFlOHWXv6Gg fOzc/SnrZX9KWEQX5pfN6w9xtvCrPxL/Hcd3s9NPn6WKjUO2HlWrMuYF8A6QVLIW7SjR q+iS/zj9x6/poygnNi/DD64r3fD0nMzlq5UWdiEcq4gAjwhA/gf8BdC4jOMV+ZJjjqMl UO1Q== X-Gm-Message-State: AOAM531aT0jTaIt22+9u1nrt0pRW00O15KggskM1dG5u5mVEXqxLat7N GvNsWD31JkJdorwwQSU85zQ= X-Received: by 2002:a65:5684:: with SMTP id v4mr3607064pgs.218.1621683140113; Sat, 22 May 2021 04:32:20 -0700 (PDT) Received: from localhost ([178.236.46.205]) by smtp.gmail.com with ESMTPSA id w123sm6284875pfw.151.2021.05.22.04.32.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 May 2021 04:32:19 -0700 (PDT) From: menglong8.dong@gmail.com X-Google-Original-From: dong.menglong@zte.com.cn To: mcgrof@kernel.org Cc: viro@zeniv.linux.org.uk, keescook@chromium.org, samitolvanen@google.com, johan@kernel.org, ojeda@kernel.org, jeyu@kernel.org, joe@perches.com, dong.menglong@zte.com.cn, masahiroy@kernel.org, jack@suse.cz, axboe@kernel.dk, hare@suse.de, gregkh@linuxfoundation.org, tj@kernel.org, song@kernel.org, neilb@suse.de, akpm@linux-foundation.org, brho@google.com, f.fainelli@gmail.com, wangkefeng.wang@huawei.com, arnd@arndb.de, linux@rasmusvillemoes.dk, mhiramat@kernel.org, rostedt@goodmis.org, vbabka@suse.cz, glider@google.com, pmladek@suse.com, ebiederm@xmission.com, jojing64@gmail.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] init/main.c: introduce function ramdisk_exec_exist() Date: Sat, 22 May 2021 19:31:53 +0800 Message-Id: <20210522113155.244796-2-dong.menglong@zte.com.cn> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210522113155.244796-1-dong.menglong@zte.com.cn> References: <20210522113155.244796-1-dong.menglong@zte.com.cn> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Menglong Dong Introduce the function ramdisk_exec_exist, which is used to check the exist of 'ramdisk_execute_command'. It can do absolute path and relative path check. For relative path, it will ignore '/' and '.' in the start of 'ramdisk_execute_command'. Signed-off-by: Menglong Dong --- init/main.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/init/main.c b/init/main.c index eb01e121d2f1..95cab17046e0 100644 --- a/init/main.c +++ b/init/main.c @@ -1522,6 +1522,21 @@ void __init console_on_rootfs(void) fput(file); } +bool __init ramdisk_exec_exist(bool absolute) +{ + char *tmp_command = ramdisk_execute_command; + + if (!tmp_command) + return false; + + if (!absolute) { + while (*tmp_command == '/' || *tmp_command == '.') + tmp_command++; + } + + return init_eaccess(tmp_command) == 0; +} + static noinline void __init kernel_init_freeable(void) { /* @@ -1568,7 +1583,7 @@ static noinline void __init kernel_init_freeable(void) * check if there is an early userspace init. If yes, let it do all * the work */ - if (init_eaccess(ramdisk_execute_command) != 0) { + if (!ramdisk_exec_exist(true)) { ramdisk_execute_command = NULL; prepare_namespace(); } -- 2.31.1