From 5db90d87cf0bf10845582f13ee718e8758ee16d6 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Mon, 23 Aug 2004 21:31:58 -0700 Subject: [PATCH] [PATCH] BUG() on inconsistant dcache tree in may_delete This can't happen with a sane filesystem (but is triggered by the buggy clearcase bin only kernel module), so let's better BUG_ON early. Adopted from Al's patch in the RH tree. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- fs/namei.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fs/namei.c b/fs/namei.c index f3ee9dbe22af3..a01e3ca1ef2e2 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1094,8 +1094,12 @@ static inline int check_sticky(struct inode *dir, struct inode *inode) static inline int may_delete(struct inode *dir,struct dentry *victim,int isdir) { int error; - if (!victim->d_inode || victim->d_parent->d_inode != dir) + + if (!victim->d_inode) return -ENOENT; + + BUG_ON(victim->d_parent->d_inode != dir); + error = permission(dir,MAY_WRITE | MAY_EXEC, NULL); if (error) return error; -- 2.53.0