Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp1705163pxj; Wed, 19 May 2021 11:56:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyqi+rJJ61YmTbJh5Tf9vBcWhOJZkDnT22MlaU9t3aYRQyrtsH+kbCw2ZYFq8n1F1wXP5VU X-Received: by 2002:aa7:d7d5:: with SMTP id e21mr557421eds.78.1621450610172; Wed, 19 May 2021 11:56:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621450610; cv=none; d=google.com; s=arc-20160816; b=ozFI5V9xwFYgQqnQED7+t4XXgheIFblemVhBVynD5dNpSMtLoigFwzIvCeO+292DNw WwPhDZGJ/36Xz/RtNYdAXkvLxIh9I+5tyrJWGkxqtAuQOMEZNkk2xgcoYKqpqracHj3X HWZ5mEZra0CHRV1zJ9cM4ELdsexRWklVX43q5Kg09Iz18Q61xp35m154A40h0q8zFBVw Iged8DewGYe5LgYScJ/DVGI+lc0O0pRjEreVGXZ80xAonYMSEiVaYgCOegSFj3F0L4Yt 5JBzNSAbmubGMnLRNuTWPX9CTqn8KL1vCwJymqXgMnp25wzGKn2q1p9SnzRMkShOdH3F Hq4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Xw4db4XB+tXUQhaNPNRlGEI+WTlKd8sSjJ3A94qF5kU=; b=WAELeF2aLZ8YjCRUie4tYxg4gk8Z5XWkA5t8W6mNr68XQFmGIHOntAIbT1v4jukP/G PTu++v/1Ro2sQufXCxKHKwlaDiwiS6wQ1u2djpFiuQigCENkwICL8Cvickwvq4HMS2k0 Od6jOsIIdD9mKrfrjW70wkbR8KsdCkrY2iaS5wZUkc/C45daKCyY+a4T3P12BwBeklSZ fNSQk5Mw3SCt5BiMxUrGqolwqVR2u5ecqRYvzX3RoHFb6ZfZlo5TKbyYiS4LivCh1ose 7G/8Zoi4QdziDcVV5MEmig1w36YhDU0WBpOtxdLC3xd8H2wSYZPIwxa13Uubpy+8KNIm nIxQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ko1si442451ejc.344.2021.05.19.11.56.25; Wed, 19 May 2021 11:56:50 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352901AbhESAwb (ORCPT + 99 others); Tue, 18 May 2021 20:52:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53908 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1352863AbhESAu5 (ORCPT ); Tue, 18 May 2021 20:50:57 -0400 Received: from zeniv-ca.linux.org.uk (zeniv-ca.linux.org.uk [IPv6:2607:5300:60:148a::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 35FC4C061761; Tue, 18 May 2021 17:49:38 -0700 (PDT) Received: from viro by zeniv-ca.linux.org.uk with local (Exim 4.94 #2 (Red Hat Linux)) id 1ljAOT-00G4Fa-Mu; Wed, 19 May 2021 00:49:01 +0000 From: Al Viro To: Linus Torvalds Cc: Jia He , Petr Mladek , Steven Rostedt , Sergey Senozhatsky , Andy Shevchenko , Rasmus Villemoes , Jonathan Corbet , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , "Eric W . Biederman" , "Darrick J. Wong" , "Peter Zijlstra (Intel)" , Ira Weiny , Eric Biggers , "Ahmed S. Darwish" , "open list:DOCUMENTATION" , Linux Kernel Mailing List , linux-s390 , linux-fsdevel Subject: [PATCH 04/14] d_path: get rid of path_with_deleted() Date: Wed, 19 May 2021 00:48:51 +0000 Message-Id: <20210519004901.3829541-4-viro@zeniv.linux.org.uk> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210519004901.3829541-1-viro@zeniv.linux.org.uk> References: <20210519004901.3829541-1-viro@zeniv.linux.org.uk> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: Al Viro Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org expand in the sole caller; transform the initial prepends similar to what we'd done in dentry_path() (prepend_path() will fail the right way if we call it with negative buflen, same as __dentry_path() does). Signed-off-by: Al Viro --- fs/d_path.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/fs/d_path.c b/fs/d_path.c index b3324ae7cfe2..7f3fac544bbb 100644 --- a/fs/d_path.c +++ b/fs/d_path.c @@ -211,23 +211,6 @@ char *d_absolute_path(const struct path *path, return res; } -/* - * same as __d_path but appends "(deleted)" for unlinked files. - */ -static int path_with_deleted(const struct path *path, - const struct path *root, - char **buf, int *buflen) -{ - prepend(buf, buflen, "", 1); - if (d_unlinked(path->dentry)) { - int error = prepend(buf, buflen, " (deleted)", 10); - if (error) - return error; - } - - return prepend_path(path, root, buf, buflen); -} - static int prepend_unreachable(char **buffer, int *buflen) { return prepend(buffer, buflen, "(unreachable)", 13); @@ -282,7 +265,11 @@ char *d_path(const struct path *path, char *buf, int buflen) rcu_read_lock(); get_fs_root_rcu(current->fs, &root); - error = path_with_deleted(path, &root, &res, &buflen); + if (unlikely(d_unlinked(path->dentry))) + prepend(&res, &buflen, " (deleted)", 11); + else + prepend(&res, &buflen, "", 1); + error = prepend_path(path, &root, &res, &buflen); rcu_read_unlock(); if (error < 0) -- 2.11.0