From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 90444E7718B for ; Mon, 23 Dec 2024 14:17:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9FA4B6B00B0; Mon, 23 Dec 2024 09:17:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9A9B36B00B2; Mon, 23 Dec 2024 09:17:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 871826B00B3; Mon, 23 Dec 2024 09:17:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 6A4026B00B0 for ; Mon, 23 Dec 2024 09:17:27 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 20078121819 for ; Mon, 23 Dec 2024 14:17:27 +0000 (UTC) X-FDA: 82926425316.30.8845BB8 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by imf12.hostedemail.com (Postfix) with ESMTP id 089A54001C for ; Mon, 23 Dec 2024 14:17:05 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=none; spf=pass (imf12.hostedemail.com: domain of yangerkun@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=yangerkun@huaweicloud.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734963427; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7TXdILDDResix+cIYXBOYmGBmR+OBrO3Pb2EtAg6Kts=; b=dyPIztx8kD18EAm2+I/fCVRSyMbpR+miJUZO3tKHq5BmFb7xSz1YGvISpr045HXtPhi0qW lJBuhtkSFy/DEW2HL1AmOW9QzgP68+y4fDMYhqYUdiwuTuBBq/y3HdmHpnUVMc/Y/tLenu 6fB7cdoJg62Tm5ElAiapSMsVhm8g9Zg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734963427; a=rsa-sha256; cv=none; b=POJIoY2mdVFQAWzOiUUJeBUDsVByiqnxhQS2utzD3iROUvI03puoPu0RO2OkLuM/L4TYx8 R0RVwhWO7pPGOcSZYDfXeDBra6uDMk2wd1NIUGiLn7OOj/SA2JCYClrQGU/cNbLWCKHwGc 3C+lKKbEEfp5C33P7MZXNWh1WaSFkSY= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=none; spf=pass (imf12.hostedemail.com: domain of yangerkun@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=yangerkun@huaweicloud.com; dmarc=none Received: from mail.maildlp.com (unknown [172.19.93.142]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4YH0T42XfCz4f3jYR for ; Mon, 23 Dec 2024 22:16:56 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.128]) by mail.maildlp.com (Postfix) with ESMTP id 06EFC1A018D for ; Mon, 23 Dec 2024 22:17:16 +0800 (CST) Received: from [10.174.177.210] (unknown [10.174.177.210]) by APP4 (Coremail) with SMTP id gCh0CgAHMYXqcGlnLPiuFQ--.13522S3; Mon, 23 Dec 2024 22:17:15 +0800 (CST) Message-ID: Date: Mon, 23 Dec 2024 22:17:14 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: [PATCH v6 2/5] Revert "libfs: Add simple_offset_empty()" To: cel@kernel.org, Hugh Dickins , Christian Brauner , Al Viro Cc: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, yukuai3@huawei.com, Chuck Lever References: <20241220153314.5237-1-cel@kernel.org> <20241220153314.5237-3-cel@kernel.org> From: yangerkun In-Reply-To: <20241220153314.5237-3-cel@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CM-TRANSID:gCh0CgAHMYXqcGlnLPiuFQ--.13522S3 X-Coremail-Antispam: 1UD129KBjvJXoWxCF4xtFWUuw17Zry7Xr1fWFg_yoW5urWfpF nxKF4fKr4fX348WFWvvFsrZ34Fvw1DWr1UJ3yfWw4rtry2yrn7tF1Ikr4Y9as0krykCr47 XFs8KFnY9a1UJrDanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkEb4IE77IF4wAFF20E14v26r4j6ryUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x 0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG 6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFV Cjc4AY6r1j6r4UM4x0Y48IcVAKI48JMxk0xIA0c2IEe2xFo4CEbIxvr21lc7CjxVAaw2AF wI0_JF0_Jw1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4 xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43 MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I 0E14v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWU JVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x07UK2N tUUUUU= X-CM-SenderInfo: 51dqwvhunx0q5kxd4v5lfo033gof0z/ X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 089A54001C X-Stat-Signature: 8i1kq7ecwga4b93nrdto8cm86zx71rjb X-Rspam-User: X-HE-Tag: 1734963425-108417 X-HE-Meta: U2FsdGVkX1+QOwmIIg4zDqPC56mKVnBtK3C2Tn/FIxGuc3LkeZh+ixJm9uMT4+492edaYK6ZjRIgMkMz0UnyMqobnT4jDUz2+8ITL9KkVf1mqolMOe7mfhWZi6h2/YQJ0jZGDcO2Z6V06bptm3BMQEugRc9VW5qMViLG0ZZHZlifNFvL6mw1muCgHZ1X4I2u48JSZmhBIMMt1OVthLn6C/M+pM0FH53wM55QKf/sDz7nw4fl/H/TW0bp7/PqccKTRP8kntjXmuR6qbIBuhu1WYPt7DUrjQ/3L/Ll3i8t/BNxjo+U327g3qEl1L8NibeoD396N5BbSFyOEMl+4auAiRPXrYstMuV9RLM2G5LMAXoQxaqdd2rDsXJmnb+lqGnEDbcD9O+Nh9ZTenF4aISGnMGSpTOuowVT4iSNb9K7kHdwey3kXdF+t1f3TPhTH08BqZzHXsnyl330ukLY4XpqBUG64tF3/6lzHEkPYBkD5uXGlPDfr6IIM2nZdEr5nuKtjdCCH0e64eW9/Kjk5iFp/n/UKF9w0G42rNy7BxFRdeP+Q9+fysXgHArZERtmhqtAvUc1BxALPQMn2Z+ENMNMUMxu2Kfel3t+mS1y3Wmq08WbVHEzkfvgGuBo6v51/lVQ+okLfZ4URGOQXUKks8NIsC0iagffGR1mcYW/mZBmhhVAfIHOwASkesQEZ/SWow9HWaxI19E7ijS/ApPP/63AWwhFGpZSzWqb+9WJQWJJJ70jwIdUfrshvySVtxiYA4MlPacZ5MzLYNi+1NO1bBfbqXVu8Rp0cboeyiaaRHZShBwCg1dsjLISsx/9T3AO0rEweXYFBnDHyxw+gBxtCIOkEV/jLIhnFeeHy8VVtLmjJPF59BE9M4B59B/FHNiOYNmQi/jeQCaOqYCQWFIXdqjg6JxI4Hxd+y0ePpkSK9vcz6X2bU+ESuG3cv3cGQlrGyLTESrcBv8VuTLfovPCd9v mPGaBPF9 R9w5RwgY/syaPjTy6aW2Dx7pZXbMKpRIg2CnFmngap30Xx/JAekxSNK7BfiNupLE2IfUUPuMxo1/2YD96q0dPb9DDBNJz5V93Hw7I+uSjt3BVD5KlsDbCGItcKfO8Ymfbp9c3dQM3LinFvDTMM8ZrzA7UVNwCL7MJp4uvtSVa6FPSAjKTmzytC4oVqsru4NiLu7kioNEO+K+4YnGupDIeI5Qi4/kfW3OuK8KCU2CJF8rXmfVvDy44rdn+4cPDdPMjDdT0/tV9fXCn8+0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: LGTM Reviewed-by: Yang Erkun 在 2024/12/20 23:33, cel@kernel.org 写道: > From: Chuck Lever > > simple_empty() and simple_offset_empty() perform the same task. > The latter's use as a canary to find bugs has not found any new > issues. A subsequent patch will remove the use of the mtree for > iterating directory contents, so revert back to using a similar > mechanism for determining whether a directory is indeed empty. > > Only one such mechanism is ever needed. > > Signed-off-by: Chuck Lever > --- > fs/libfs.c | 32 -------------------------------- > include/linux/fs.h | 1 - > mm/shmem.c | 4 ++-- > 3 files changed, 2 insertions(+), 35 deletions(-) > > diff --git a/fs/libfs.c b/fs/libfs.c > index 3da58a92f48f..8380d9314ebd 100644 > --- a/fs/libfs.c > +++ b/fs/libfs.c > @@ -329,38 +329,6 @@ void simple_offset_remove(struct offset_ctx *octx, struct dentry *dentry) > offset_set(dentry, 0); > } > > -/** > - * simple_offset_empty - Check if a dentry can be unlinked > - * @dentry: dentry to be tested > - * > - * Returns 0 if @dentry is a non-empty directory; otherwise returns 1. > - */ > -int simple_offset_empty(struct dentry *dentry) > -{ > - struct inode *inode = d_inode(dentry); > - struct offset_ctx *octx; > - struct dentry *child; > - unsigned long index; > - int ret = 1; > - > - if (!inode || !S_ISDIR(inode->i_mode)) > - return ret; > - > - index = DIR_OFFSET_MIN; > - octx = inode->i_op->get_offset_ctx(inode); > - mt_for_each(&octx->mt, child, index, LONG_MAX) { > - spin_lock(&child->d_lock); > - if (simple_positive(child)) { > - spin_unlock(&child->d_lock); > - ret = 0; > - break; > - } > - spin_unlock(&child->d_lock); > - } > - > - return ret; > -} > - > /** > * simple_offset_rename - handle directory offsets for rename > * @old_dir: parent directory of source entry > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 7e29433c5ecc..f7efc6866ebc 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -3468,7 +3468,6 @@ struct offset_ctx { > void simple_offset_init(struct offset_ctx *octx); > int simple_offset_add(struct offset_ctx *octx, struct dentry *dentry); > void simple_offset_remove(struct offset_ctx *octx, struct dentry *dentry); > -int simple_offset_empty(struct dentry *dentry); > int simple_offset_rename(struct inode *old_dir, struct dentry *old_dentry, > struct inode *new_dir, struct dentry *new_dentry); > int simple_offset_rename_exchange(struct inode *old_dir, > diff --git a/mm/shmem.c b/mm/shmem.c > index ccb9629a0f70..274c2666f457 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -3818,7 +3818,7 @@ static int shmem_unlink(struct inode *dir, struct dentry *dentry) > > static int shmem_rmdir(struct inode *dir, struct dentry *dentry) > { > - if (!simple_offset_empty(dentry)) > + if (!simple_empty(dentry)) > return -ENOTEMPTY; > > drop_nlink(d_inode(dentry)); > @@ -3875,7 +3875,7 @@ static int shmem_rename2(struct mnt_idmap *idmap, > return simple_offset_rename_exchange(old_dir, old_dentry, > new_dir, new_dentry); > > - if (!simple_offset_empty(new_dentry)) > + if (!simple_empty(new_dentry)) > return -ENOTEMPTY; > > if (flags & RENAME_WHITEOUT) {