<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/fs/inotify.c, branch v2.6.25.20</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>inotify: remove debug code</title>
<updated>2008-02-06T18:41:07+00:00</updated>
<author>
<name>Nick Piggin</name>
<email>npiggin@suse.de</email>
</author>
<published>2008-02-06T09:37:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0d71bd5993b630a989d15adc2562a9ffe41cd26d'/>
<id>0d71bd5993b630a989d15adc2562a9ffe41cd26d</id>
<content type='text'>
The inotify debugging code is supposed to verify that the
DCACHE_INOTIFY_PARENT_WATCHED scalability optimisation does not result in
notifications getting lost nor extra needless locking generated.

Unfortunately there are also some races in the debugging code.  And it isn't
very good at finding problems anyway.  So remove it for now.

Signed-off-by: Nick Piggin &lt;npiggin@suse.de&gt;
Cc: Robert Love &lt;rlove@google.com&gt;
Cc: John McCutchan &lt;ttb@tentacle.dhs.org&gt;
Cc: Jan Kara &lt;jack@ucw.cz&gt;
Cc: Yan Zheng &lt;yanzheng@21cn.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The inotify debugging code is supposed to verify that the
DCACHE_INOTIFY_PARENT_WATCHED scalability optimisation does not result in
notifications getting lost nor extra needless locking generated.

Unfortunately there are also some races in the debugging code.  And it isn't
very good at finding problems anyway.  So remove it for now.

Signed-off-by: Nick Piggin &lt;npiggin@suse.de&gt;
Cc: Robert Love &lt;rlove@google.com&gt;
Cc: John McCutchan &lt;ttb@tentacle.dhs.org&gt;
Cc: Jan Kara &lt;jack@ucw.cz&gt;
Cc: Yan Zheng &lt;yanzheng@21cn.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>inotify: fix race</title>
<updated>2008-02-06T18:41:06+00:00</updated>
<author>
<name>Nick Piggin</name>
<email>npiggin@suse.de</email>
</author>
<published>2008-02-06T09:37:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d599e36a9ea85432587f4550acc113cd7549d12a'/>
<id>d599e36a9ea85432587f4550acc113cd7549d12a</id>
<content type='text'>
There is a race between setting an inode's children's "parent watched" flag
when placing the first watch on a parent, and instantiating new children of
that parent: a child could miss having its flags set by
set_dentry_child_flags, but then inotify_d_instantiate might still see
!inotify_inode_watched.

The solution is to set_dentry_child_flags after adding the watch.  Locking is
taken care of, because both set_dentry_child_flags and inotify_d_instantiate
hold dcache_lock and child-&gt;d_locks.

Signed-off-by: Nick Piggin &lt;npiggin@suse.de&gt;
Cc: Robert Love &lt;rlove@google.com&gt;
Cc: John McCutchan &lt;ttb@tentacle.dhs.org&gt;
Cc: Jan Kara &lt;jack@ucw.cz&gt;
Cc: Yan Zheng &lt;yanzheng@21cn.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a race between setting an inode's children's "parent watched" flag
when placing the first watch on a parent, and instantiating new children of
that parent: a child could miss having its flags set by
set_dentry_child_flags, but then inotify_d_instantiate might still see
!inotify_inode_watched.

The solution is to set_dentry_child_flags after adding the watch.  Locking is
taken care of, because both set_dentry_child_flags and inotify_d_instantiate
hold dcache_lock and child-&gt;d_locks.

Signed-off-by: Nick Piggin &lt;npiggin@suse.de&gt;
Cc: Robert Love &lt;rlove@google.com&gt;
Cc: John McCutchan &lt;ttb@tentacle.dhs.org&gt;
Cc: Jan Kara &lt;jack@ucw.cz&gt;
Cc: Yan Zheng &lt;yanzheng@21cn.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] new helper - inotify_evict_watch()</title>
<updated>2007-10-21T06:37:38+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2007-06-07T16:22:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=455434d450a358ac5bcf3fc58f8913d13c544622'/>
<id>455434d450a358ac5bcf3fc58f8913d13c544622</id>
<content type='text'>
Kicks the watch out without dropping it.  Called under -&gt;inotify_mutex

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Kicks the watch out without dropping it.  Called under -&gt;inotify_mutex

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] new helper - inotify_clone_watch()</title>
<updated>2007-10-21T06:37:32+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2007-06-07T16:21:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b9efe8a234ad874a049460417c54680338f96360'/>
<id>b9efe8a234ad874a049460417c54680338f96360</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce a handy list_first_entry macro</title>
<updated>2007-05-08T18:15:11+00:00</updated>
<author>
<name>Pavel Emelianov</name>
<email>xemul@sw.ru</email>
</author>
<published>2007-05-08T07:30:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b5e618181a927210f8be1d3d2249d31904ba358d'/>
<id>b5e618181a927210f8be1d3d2249d31904ba358d</id>
<content type='text'>
There are many places in the kernel where the construction like

   foo = list_entry(head-&gt;next, struct foo_struct, list);

are used.
The code might look more descriptive and neat if using the macro

   list_first_entry(head, type, member) \
             list_entry((head)-&gt;next, type, member)

Here is the macro itself and the examples of its usage in the generic code.
 If it will turn out to be useful, I can prepare the set of patches to
inject in into arch-specific code, drivers, networking, etc.

Signed-off-by: Pavel Emelianov &lt;xemul@openvz.org&gt;
Signed-off-by: Kirill Korotaev &lt;dev@openvz.org&gt;
Cc: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Cc: Andi Kleen &lt;andi@firstfloor.org&gt;
Cc: Zach Brown &lt;zach.brown@oracle.com&gt;
Cc: Davide Libenzi &lt;davidel@xmailserver.org&gt;
Cc: John McCutchan &lt;ttb@tentacle.dhs.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: john stultz &lt;johnstul@us.ibm.com&gt;
Cc: Ram Pai &lt;linuxram@us.ibm.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are many places in the kernel where the construction like

   foo = list_entry(head-&gt;next, struct foo_struct, list);

are used.
The code might look more descriptive and neat if using the macro

   list_first_entry(head, type, member) \
             list_entry((head)-&gt;next, type, member)

Here is the macro itself and the examples of its usage in the generic code.
 If it will turn out to be useful, I can prepare the set of patches to
inject in into arch-specific code, drivers, networking, etc.

Signed-off-by: Pavel Emelianov &lt;xemul@openvz.org&gt;
Signed-off-by: Kirill Korotaev &lt;dev@openvz.org&gt;
Cc: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Cc: Andi Kleen &lt;andi@firstfloor.org&gt;
Cc: Zach Brown &lt;zach.brown@oracle.com&gt;
Cc: Davide Libenzi &lt;davidel@xmailserver.org&gt;
Cc: John McCutchan &lt;ttb@tentacle.dhs.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: john stultz &lt;johnstul@us.ibm.com&gt;
Cc: Ram Pai &lt;linuxram@us.ibm.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] severing fs.h, radix-tree.h -&gt; sched.h</title>
<updated>2006-12-04T07:00:24+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2006-10-18T17:55:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=914e26379decf1fd984b22e51fd2e4209b7a7f1b'/>
<id>914e26379decf1fd984b22e51fd2e4209b7a7f1b</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] inotify (4/5): allow watch removal from event handler</title>
<updated>2006-06-20T09:25:19+00:00</updated>
<author>
<name>Amy Griffis</name>
<email>amy.griffis@hp.com</email>
</author>
<published>2006-06-01T20:11:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3ca10067f7f4bfa62a1b0edc84f590261fa02d75'/>
<id>3ca10067f7f4bfa62a1b0edc84f590261fa02d75</id>
<content type='text'>
Allow callers to remove watches from their event handler via
inotify_remove_watch_locked().  This functionality can be used to
achieve IN_ONESHOT-like functionality for a subset of events in the
mask.

Signed-off-by: Amy Griffis &lt;amy.griffis@hp.com&gt;
Acked-by: Robert Love &lt;rml@novell.com&gt;
Acked-by: John McCutchan &lt;john@johnmccutchan.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow callers to remove watches from their event handler via
inotify_remove_watch_locked().  This functionality can be used to
achieve IN_ONESHOT-like functionality for a subset of events in the
mask.

Signed-off-by: Amy Griffis &lt;amy.griffis@hp.com&gt;
Acked-by: Robert Love &lt;rml@novell.com&gt;
Acked-by: John McCutchan &lt;john@johnmccutchan.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] inotify (3/5): add interfaces to kernel API</title>
<updated>2006-06-20T09:25:18+00:00</updated>
<author>
<name>Amy Griffis</name>
<email>amy.griffis@hp.com</email>
</author>
<published>2006-06-01T20:11:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a9dc971d3fdb857a2bcd6d53238125a2cd31d5f4'/>
<id>a9dc971d3fdb857a2bcd6d53238125a2cd31d5f4</id>
<content type='text'>
Add inotify_init_watch() so caller can use inotify_watch refcounts
before calling inotify_add_watch().

Add inotify_find_watch() to find an existing watch for an (ih,inode)
pair.  This is similar to inotify_find_update_watch(), but does not
update the watch's mask if one is found.

Add inotify_rm_watch() to remove a watch via the watch pointer instead
of the watch descriptor.

Signed-off-by: Amy Griffis &lt;amy.griffis@hp.com&gt;
Acked-by: Robert Love &lt;rml@novell.com&gt;
Acked-by: John McCutchan &lt;john@johnmccutchan.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add inotify_init_watch() so caller can use inotify_watch refcounts
before calling inotify_add_watch().

Add inotify_find_watch() to find an existing watch for an (ih,inode)
pair.  This is similar to inotify_find_update_watch(), but does not
update the watch's mask if one is found.

Add inotify_rm_watch() to remove a watch via the watch pointer instead
of the watch descriptor.

Signed-off-by: Amy Griffis &lt;amy.griffis@hp.com&gt;
Acked-by: Robert Love &lt;rml@novell.com&gt;
Acked-by: John McCutchan &lt;john@johnmccutchan.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] inotify (2/5): add name's inode to event handler</title>
<updated>2006-06-20T09:25:18+00:00</updated>
<author>
<name>Amy Griffis</name>
<email>amy.griffis@hp.com</email>
</author>
<published>2006-06-01T20:11:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7c29772288b7026504cfe75bfd90d40fbd1574bf'/>
<id>7c29772288b7026504cfe75bfd90d40fbd1574bf</id>
<content type='text'>
When an inotify event includes a dentry name, also include the inode
associated with that name.

Signed-off-by: Amy Griffis &lt;amy.griffis@hp.com&gt;
Acked-by: Robert Love &lt;rml@novell.com&gt;
Acked-by: John McCutchan &lt;john@johnmccutchan.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When an inotify event includes a dentry name, also include the inode
associated with that name.

Signed-off-by: Amy Griffis &lt;amy.griffis@hp.com&gt;
Acked-by: Robert Love &lt;rml@novell.com&gt;
Acked-by: John McCutchan &lt;john@johnmccutchan.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] inotify (1/5): split kernel API from userspace support</title>
<updated>2006-06-20T09:25:17+00:00</updated>
<author>
<name>Amy Griffis</name>
<email>amy.griffis@hp.com</email>
</author>
<published>2006-06-01T20:10:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2d9048e201bfb67ba21f05e647b1286b8a4a5667'/>
<id>2d9048e201bfb67ba21f05e647b1286b8a4a5667</id>
<content type='text'>
The following series of patches introduces a kernel API for inotify,
making it possible for kernel modules to benefit from inotify's
mechanism for watching inodes.  With these patches, inotify will
maintain for each caller a list of watches (via an embedded struct
inotify_watch), where each inotify_watch is associated with a
corresponding struct inode.  The caller registers an event handler and
specifies for which filesystem events their event handler should be
called per inotify_watch.

Signed-off-by: Amy Griffis &lt;amy.griffis@hp.com&gt;
Acked-by: Robert Love &lt;rml@novell.com&gt;
Acked-by: John McCutchan &lt;john@johnmccutchan.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The following series of patches introduces a kernel API for inotify,
making it possible for kernel modules to benefit from inotify's
mechanism for watching inodes.  With these patches, inotify will
maintain for each caller a list of watches (via an embedded struct
inotify_watch), where each inotify_watch is associated with a
corresponding struct inode.  The caller registers an event handler and
specifies for which filesystem events their event handler should be
called per inotify_watch.

Signed-off-by: Amy Griffis &lt;amy.griffis@hp.com&gt;
Acked-by: Robert Love &lt;rml@novell.com&gt;
Acked-by: John McCutchan &lt;john@johnmccutchan.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
</feed>
