From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AFC4156C6A for ; Tue, 3 Mar 2026 23:14:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772579693; cv=none; b=K87nmMoAtQ5R6wpOOaFoE15YXG44scLS6Dq6BIoGpk+uaO2XfnTdsbwsaTo87GmLh+CB97efZaWHllf7OXE8gqxw6AAcG4g74NomwM/AfADRGUgYwVlNeyZ1qaLPclwI+S2BnWPlIZeKjpvgwkHcrEok24Mu4CQd4VYhMGD/MJs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772579693; c=relaxed/simple; bh=lynbXsdNhOUjPBs30+X4QsPmx/3smrXY8pgjujEKUdY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=FeerkbiNgReIt18nHIGY/KYENy/RT7tMiGK7tnvz5Ytw4tSQYZYWVl3hvsslVDSzuJ8DQJH5/4Wp624JNRPKPWRQ/dzmwdDKlBacTOBNeHRG2+6X+NM49uVPEINEAmlyJquDStAxeoV+QWAiCiDfrzOaWdZtAJi7HjHsVoK+puQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=zabbo.net; spf=pass smtp.mailfrom=zabbo.net; dkim=pass (1024-bit key) header.d=zabbo.net header.i=@zabbo.net header.b=lU+36xs1; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=zabbo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=zabbo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=zabbo.net header.i=@zabbo.net header.b="lU+36xs1" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2ae4e538abdso25713615ad.3 for ; Tue, 03 Mar 2026 15:14:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zabbo.net; s=google; t=1772579691; x=1773184491; darn=lists.linux.dev; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=acJLwaa3PIntpHxmorx3cHGB9yBYanAF5M8HwEHM3nI=; b=lU+36xs18GiLq92pKKmi4Xh9JwmRsOsxzkpO14vDvEit6WbKcQFsu7AdkCripnRePU a/7SH5LIFv9ZsGkIQF1x7cJmx7/E6rfBnYaWd8jyteOZPkjJbEH4FhnnmL7EnZJbg51L fNJQ18MiT/gEzHlUi+rqpLPH7+KcbwPF7Epek= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772579691; x=1773184491; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=acJLwaa3PIntpHxmorx3cHGB9yBYanAF5M8HwEHM3nI=; b=em4Lu5yudQU6v25H8s3ce2jcLrqeSTrPI5GPRgqFZX+7w3x2FocQzRVIgWin5Th6zH IdLCnuI/SbzUW19N5HCUXxhvqRT3V5x6CuM00ssOGnkUYa2MCV2jwHVDX80iPeNnDWj1 jmACyI2F6aR+R4QMBHWGsZLGt4ihtMXssrwwNzVdWji/NkcBpFdlimSIMymUY1jwgkVm jpvQhtq6muBQ+t3GjYKD9rpod4rWcTjQ67NzuxhByT2IUMpATVKTCy5xuZp5Zzf6ypsa ZodzzxHVIzWgeVMKZ3SCEcORXRU8jVL4AtzOf9fbBTBeTgmE0at74godmAJ92sA55Yoy NhWA== X-Gm-Message-State: AOJu0YxvmaXl5Z4yz2VCEFH66f6AfnG9B9+11AjcS1Y3vcE+2VetF5C5 qyGE9PHfJli1vtpNzm7ot0zIeOpDVf8jc+KcOCMQoHpYRz+hwVWvxES55BsZqdQefEMJ9QWkKbM TArWK X-Gm-Gg: ATEYQzwbpn8w9qEScHsiySXNQnK2gRcAHQc6UUFSOf6q+4K57Kn70T5+xJ2v0RXngdn n7yUIaCnxJ5efUHUw22P+CmCwp0+Tntfl3E8wZmKJPBn/2skXM/rsouZ/32VrDnYGO0IzimE8BS 2GJiC9H/SNwrm5/AHnWgzDcpsQkBrzAAt2BSHzVepXoERPv/u+rPb53N2dixfKIM9jIKF34IsIi j1jLIwFP2VtM2624y8kbW61WxPxZE0pn0rW1PoFrl2Zqboj/deE0igzMknJwgFNWd0o2sojuHKt MD6TPqJiBdPpHicWCNvMTKsUqdjXxGU7RqDjJRLEZuYgLNJ9VGZlBEG8NVhaHvI2V5Un/W+7ZcM TihoiOpDHaNVG12Gud1YGZ7pYZT/6ry8PL4TzeP7BY4BTczPBzQP71nIPvn4ebh2GK3Buz9MGK/ IwEP5euvmvXw== X-Received: by 2002:a17:903:22cf:b0:2ae:5044:8de2 with SMTP id d9443c01a7336-2ae6aa2cf2bmr1013745ad.17.1772579691622; Tue, 03 Mar 2026 15:14:51 -0800 (PST) Received: from localhost ([50.39.133.72]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae464ffff3sm91444525ad.42.2026.03.03.15.14.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 15:14:51 -0800 (PST) Date: Tue, 3 Mar 2026 15:14:50 -0800 From: Zach Brown To: Valerie Aurora Cc: rpdfs-devel@lists.linux.dev Subject: Re: [PATCH] Add rpdfs_unlink() and rpdfs_rmdir() Message-ID: <20260303231450.GA3280611@localhost.localdomain> References: <20260226203858.23117-1-val@versity.com> Precedence: bulk X-Mailing-List: rpdfs-devel@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260226203858.23117-1-val@versity.com> On Thu, Feb 26, 2026 at 09:38:58PM +0100, Valerie Aurora wrote: > + /* prepare all the blocks for the txn */ > + do { > + ret = rpdfs_inode_txn_prepare(rfi, &txn, dir, RBAF_WRITE) ?: > + rpdfs_inode_txn_prepare(rfi, &txn, inode, RBAF_WRITE) ?: > + prepare_remove_entry(rfi, &txn, dir, kd); > + } while (rpdfs_txn_retry(rfi, &txn, &ret)); > + if (ret < 0) > + goto out; > + > + /* > + * The VFS did a bunch of checks before calling this function, > + * but some other node could have made changes between then and > + * now. The prepare functions only succeed if the inodes have > + * not been freed or reused, and if the directory entry to be > + * removed is still there. The remaining check is if the target > + * dir of an rmdir is still empty. > + */ > + > + if (S_ISDIR(inode->i_mode)) { > + if (!simple_empty(dentry)) { > + ret = -ENOTEMPTY; > + goto out; > + } simple_empty() only checks the dcache. It's for in-memory systems only. A dir that had entries that weren't cached would pass this test. Just check nlink. And this is in the apply phase so it can't generate an error. It should have been detected in prepare. Maybe a simple prepare_unlink() that checks the prepared inodes? - z