diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-14 16:26:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-14 16:26:18 -0500 |
commit | 6f7f7caab259026234277b659485d22c1dcb1ab4 (patch) | |
tree | db5515958f3cc27462b3c8324b1fb05677193d52 | |
parent | d018b6f4f1539f3679fbdc2d02d58d09e76be84a (diff) |
Turn d_set_d_op() BUG_ON() into WARN_ON_ONCE()
It's indicative of a real problem, and it actually triggers with
autofs4, but the BUG_ON() is excessive. The autofs4 case is being fixed
(to only set d_op in the ->lookup method) but not merged yet. In the
meantime this gets the code limping along.
Reported-by: Alex Elder <aelder@sgi.com>
Cc: Ian Kent <raven@themaw.net>
Cc: Nick Piggin <npiggin@kernel.dk>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/dcache.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 0c6d5c549d84..274a22250380 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
@@ -1357,8 +1357,8 @@ EXPORT_SYMBOL(d_alloc_name); | |||
1357 | 1357 | ||
1358 | void d_set_d_op(struct dentry *dentry, const struct dentry_operations *op) | 1358 | void d_set_d_op(struct dentry *dentry, const struct dentry_operations *op) |
1359 | { | 1359 | { |
1360 | BUG_ON(dentry->d_op); | 1360 | WARN_ON_ONCE(dentry->d_op); |
1361 | BUG_ON(dentry->d_flags & (DCACHE_OP_HASH | | 1361 | WARN_ON_ONCE(dentry->d_flags & (DCACHE_OP_HASH | |
1362 | DCACHE_OP_COMPARE | | 1362 | DCACHE_OP_COMPARE | |
1363 | DCACHE_OP_REVALIDATE | | 1363 | DCACHE_OP_REVALIDATE | |
1364 | DCACHE_OP_DELETE )); | 1364 | DCACHE_OP_DELETE )); |