projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9cdde3c
)
bcachefs: unlink: casefold d_invalidate
author
Kent Overstreet
<kent.overstreet@linux.dev>
Thu, 24 Apr 2025 22:07:06 +0000
(18:07 -0400)
committer
Kent Overstreet
<kent.overstreet@linux.dev>
Thu, 24 Apr 2025 23:09:52 +0000
(19:09 -0400)
casefolding results in additional aliases on lookup for the
non-casefolded names - these need invalidating on unlink.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fs.c
patch
|
blob
|
blame
|
history
diff --git
a/fs/bcachefs/fs.c
b/fs/bcachefs/fs.c
index c73e970528163439869066b057e43d787b218e3a..5b716ffde500c7c2c32d4e8dcebfc77b6ffcc7f3 100644
(file)
--- a/
fs/bcachefs/fs.c
+++ b/
fs/bcachefs/fs.c
@@
-847,6
+847,11
@@
int __bch2_unlink(struct inode *vdir, struct dentry *dentry,
*/
set_nlink(&inode->v, 0);
}
+
+ if (IS_CASEFOLDED(vdir)) {
+ d_invalidate(dentry);
+ d_prune_aliases(&inode->v);
+ }
err:
bch2_trans_put(trans);
bch2_unlock_inodes(INODE_UPDATE_LOCK, dir, inode);