summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-12-24 13:58:10 +0100
committerChristian Brauner <brauner@kernel.org>2025-12-24 13:58:10 +0100
commit78c850021d36d43401de2fb4758f02df93266a6f (patch)
tree309089da4e4645505ba7ec89b5afa88fd0d0fb07
parent3dd57ddec9e3a98387196a3f53b8c036977d8c0f (diff)
parent5c56afd204ad266d23889ee8823fb65b2c3b63da (diff)
Merge patch series "Fix two regressions from start_creating()/start_removing() conversion"
Tyler Hicks <code@tyhicks.com> says: When running the eCryptfs test suite on v6.19-rc2, I noticed BUG splats from every test and that the umount utility was segfaulting when tearing down after a test. Bisection led me to commit f046fbb4d81d ("ecryptfs: use new start_creating/start_removing APIs"). This patch series addresses that regression and also a mknod problem spotted during code review. * patches from https://patch.msgid.link/20251223194153.2818445-1-code@tyhicks.com: ecryptfs: Release lower parent dentry after creating dir ecryptfs: Fix improper mknod pairing of start_creating()/end_removing() Link: https://patch.msgid.link/20251223194153.2818445-1-code@tyhicks.com Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/ecryptfs/inode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
index 3978248247dc..8ab014db3e03 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
@@ -533,6 +533,7 @@ static struct dentry *ecryptfs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
fsstack_copy_inode_size(dir, lower_dir);
set_nlink(dir, lower_dir->i_nlink);
out:
+ dput(lower_dir_dentry);
end_creating(lower_dentry);
if (d_really_is_negative(dentry))
d_drop(dentry);
@@ -584,7 +585,7 @@ ecryptfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
fsstack_copy_attr_times(dir, lower_dir);
fsstack_copy_inode_size(dir, lower_dir);
out:
- end_removing(lower_dentry);
+ end_creating(lower_dentry);
if (d_really_is_negative(dentry))
d_drop(dentry);
return rc;