[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-kernel
Subject: Re: File change notification
From: Javier Fernandez-Ivern <ivern () acm ! org>
Date: 2003-12-31 20:49:07
Message-ID: 3FF33643.5080808 () acm ! org
[Download RAW message or body]
Rüdiger Klaehn wrote:
Rudiger, I've been reading your code to try and understand it, and I
found one think I'm not so sure about:
> +++ develop/fs/dnotify.c 2003-12-31 16:59:36.000000000 +0100
> @@ -153,8 +153,9 @@
> void dnotify_parent(struct dentry *dentry, unsigned long event)
> {
> struct dentry *parent;
> -
> spin_lock(&dentry->d_lock);
> + /* call inotify for this dentry */
> + inotify_dentrychange(dentry,event);
...
> +/*
> + * This function should be called when something changes about a dentry, such
> + * as attributes, creating, deleting, renaming etc.
> + */
> +void inotify_dentrychange(struct dentry *dentry,unsigned long event)
> +{
> + in_info info;
> + struct dentry *parent;
> + memset(&info,0,sizeof(in_info));
> + info.event=event;
> + spin_lock(&dentry->d_lock);
inotify_dentrychange() is called from dnotify_parent() with the
dentry->d_lock spinlock held. However, it also tries to attain the
spinlock. Wouldn't this deadlock? I thought spinlocks were not recursive.
Please let me know if I'm not understanding this...I'm a locking newbie.
--
Javier Fernandez-Ivern
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic