diff options
author | Steven Rostedt <rostedt@goodmis.org> | 2011-08-22 11:52:28 +0800 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-02-13 20:45:37 -0500 |
commit | 1d6f2097865e64963e90cce04980dce2f9fc023f (patch) | |
tree | 5173ccf565587797c62b290331ce53dfcb2fc305 /fs/autofs4/expire.c | |
parent | e188dc02d3a9c911be56eca5aa114fe7e9822d53 (diff) | |
download | op-kernel-dev-1d6f2097865e64963e90cce04980dce2f9fc023f.zip op-kernel-dev-1d6f2097865e64963e90cce04980dce2f9fc023f.tar.gz |
autofs4 - fix lockdep splat in autofs
When recursing down the locks when traversing a tree/list in
get_next_positive_dentry() or get_next_positive_subdir() a lock can
change from being nested to being a parent which breaks lockdep. This
patch tells lockdep about what we did.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Ian Kent <raven@themaw.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/autofs4/expire.c')
-rw-r--r-- | fs/autofs4/expire.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c index 450f529..1feb68e 100644 --- a/fs/autofs4/expire.c +++ b/fs/autofs4/expire.c @@ -124,6 +124,7 @@ start: /* Negative dentry - try next */ if (!simple_positive(q)) { spin_unlock(&p->d_lock); + lock_set_subclass(&q->d_lock.dep_map, 0, _RET_IP_); p = q; goto again; } @@ -186,6 +187,7 @@ again: /* Negative dentry - try next */ if (!simple_positive(ret)) { spin_unlock(&p->d_lock); + lock_set_subclass(&ret->d_lock.dep_map, 0, _RET_IP_); p = ret; goto again; } |