linux/security/apparmor
NeilBrown 7bb1eb45e4
VFS: introduce start_removing_dentry()
start_removing_dentry() is similar to start_removing() but instead of
providing a name for lookup, the target dentry is given.

start_removing_dentry() checks that the dentry is still hashed and in
the parent, and if so it locks and increases the refcount so that
end_removing() can be used to finish the operation.

This is used in cachefiles, overlayfs, smb/server, and apparmor.

There will be other users including ecryptfs.

As start_removing_dentry() takes an extra reference to the dentry (to be
put by end_removing()), there is no need to explicitly take an extra
reference to stop d_delete() from using dentry_unlink_inode() to negate
the dentry - as in cachefiles_delete_object(), and ksmbd_vfs_unlink().

cachefiles_bury_object() now gets an extra ref to the victim, which is
drops.  As it includes the needed end_removing() calls, the caller
doesn't need them.

Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Namjae Jeon <linkinjeon@kernel.org>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: NeilBrown <neil@brown.name>
Link: https://patch.msgid.link/20251113002050.676694-9-neilb@ownmail.net
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-14 13:15:57 +01:00
..
include + Features 2025-08-04 08:17:28 -07:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
Kconfig Revert "apparmor: use SHA-256 library API instead of crypto_shash API" 2025-07-15 22:39:22 -07:00
Makefile apparmor: make all generated string array headers const char *const 2025-05-25 20:15:01 -07:00
af_unix.c apparmor/af_unix: constify struct path * arguments 2025-09-15 21:17:10 -04:00
apparmorfs.c VFS: introduce start_removing_dentry() 2025-11-14 13:15:57 +01:00
audit.c apparmor: add support for profiles to define the kill signal 2025-01-18 06:47:12 -08:00
capability.c apparmor: transition from a list of rules to a vector of rules 2025-07-20 02:31:06 -07:00
crypto.c Revert "apparmor: use SHA-256 library API instead of crypto_shash API" 2025-07-15 22:39:22 -07:00
domain.c apparmor: transition from a list of rules to a vector of rules 2025-07-20 02:31:06 -07:00
file.c + Features 2025-08-04 08:17:28 -07:00
ipc.c apparmor: transition from a list of rules to a vector of rules 2025-07-20 02:31:06 -07:00
label.c apparmor: fix typos and spelling errors 2025-02-10 11:17:49 -08:00
lib.c apparmor: fix documentation mismatches in val_mask_to_str and socket functions 2025-07-20 02:19:28 -07:00
lsm.c audit/stable-6.18 PR 20250926 2025-09-30 08:22:16 -07:00
match.c apparmor: fix loop detection used in conflicting attachment resolution 2025-05-25 20:14:53 -07:00
mount.c apparmor: transition from a list of rules to a vector of rules 2025-07-20 02:31:06 -07:00
net.c apparmor: transition from a list of rules to a vector of rules 2025-07-20 02:31:06 -07:00
nulldfa.in apparmor: cleanup add proper line wrapping to nulldfa.in 2018-02-09 11:30:01 -08:00
path.c apparmor: Use IS_ERR_OR_NULL() helper function 2024-11-26 19:21:05 -08:00
policy.c apparmor: fix: oops when trying to free null ruleset 2025-08-04 01:14:56 -07:00
policy_compat.c apparmor: add additional flags to extended permission. 2025-01-18 06:47:12 -08:00
policy_ns.c apparmor: Improve debug print infrastructure 2025-01-18 06:47:11 -08:00
policy_unpack.c apparmor: fix: accept2 being specifie even when permission table is presnt 2025-07-20 02:31:13 -07:00
policy_unpack_test.c + Features 2025-08-04 08:17:28 -07:00
procattr.c apparmor: Improve debug print infrastructure 2025-01-18 06:47:11 -08:00
resource.c apparmor: transition from a list of rules to a vector of rules 2025-07-20 02:31:06 -07:00
secid.c lsm: secctx provider check on release 2024-12-04 14:59:57 -05:00
stacksplitdfa.in apparmor: use the dfa to do label parse string splitting 2018-02-09 11:30:01 -08:00
task.c apparmor: transition from a list of rules to a vector of rules 2025-07-20 02:31:06 -07:00