<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/notify/group.c, branch linux-3.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-12-11T18:44:36Z</updated>
<entry>
<title>fsnotify: make fasync generic for both inotify and fanotify</title>
<updated>2012-12-11T18:44:36Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2011-10-14T21:43:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0a6b6bd5919a65030b557ec8fe81f6fb3e93744a'/>
<id>urn:sha1:0a6b6bd5919a65030b557ec8fe81f6fb3e93744a</id>
<content type='text'>
inotify is supposed to support async signal notification when information
is available on the inotify fd.  This patch moves that support to generic
fsnotify functions so it can be used by all notification mechanisms.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: use a mutex instead of a spinlock to protect a groups mark list</title>
<updated>2012-12-11T18:29:46Z</updated>
<author>
<name>Lino Sanfilippo</name>
</author>
<published>2011-06-14T15:29:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=986ab09807ca9454c3f54aae4db7e1bb00daeed3'/>
<id>urn:sha1:986ab09807ca9454c3f54aae4db7e1bb00daeed3</id>
<content type='text'>
Replaces the groups mark_lock spinlock with a mutex. Using a mutex instead
of a spinlock results in more flexibility (i.e it allows to sleep while the
lock is held).

Signed-off-by: Lino Sanfilippo &lt;LinoSanfilippo@gmx.de&gt;
Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: use reference counting for groups</title>
<updated>2012-12-11T18:29:44Z</updated>
<author>
<name>Lino Sanfilippo</name>
</author>
<published>2011-06-14T15:29:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=23e964c284ca0a767b80a30482bd53b059d30391'/>
<id>urn:sha1:23e964c284ca0a767b80a30482bd53b059d30391</id>
<content type='text'>
Get a group ref for each mark that is added to the groups list and release that
ref when the mark is freed in fsnotify_put_mark().
We also use get a group reference for duplicated marks and for private event
data.
Now we dont free a group any more when the number of marks becomes 0 but when
the groups ref count does. Since this will only happen when all marks are removed
from a groups mark list, we dont have to set the groups number of marks to 1 at
group creation.

Beside clearing all marks in fsnotify_destroy_group() we do also flush the
groups event queue. This is since events may hold references to groups (due to
private event data) and we have to put those references first before we get a
chance to put the final ref, which will result in a call to
fsnotify_final_destroy_group().

Signed-off-by: Lino Sanfilippo &lt;LinoSanfilippo@gmx.de&gt;
Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: introduce fsnotify_get_group()</title>
<updated>2012-12-11T18:29:44Z</updated>
<author>
<name>Lino Sanfilippo</name>
</author>
<published>2011-06-14T15:29:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=986129520479d689962a42c31acdeaf854ac91f5'/>
<id>urn:sha1:986129520479d689962a42c31acdeaf854ac91f5</id>
<content type='text'>
Introduce fsnotify_get_group() which increments the reference counter of a group.

Signed-off-by: Lino Sanfilippo &lt;LinoSanfilippo@gmx.de&gt;
Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>inotify, fanotify: replace fsnotify_put_group() with fsnotify_destroy_group()</title>
<updated>2012-12-11T18:29:43Z</updated>
<author>
<name>Lino Sanfilippo</name>
</author>
<published>2011-06-14T15:29:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d8153d4d8b7b6141770e1416c4a338161205ed1b'/>
<id>urn:sha1:d8153d4d8b7b6141770e1416c4a338161205ed1b</id>
<content type='text'>
Currently in fsnotify_put_group() the ref count of a group is decremented and if
it becomes 0 fsnotify_destroy_group() is called. Since a groups ref count is only
at group creation set to 1 and never increased after that a call to fsnotify_put_group()
always results in a call to fsnotify_destroy_group().
With this patch fsnotify_destroy_group() is called directly.

Signed-off-by: Lino Sanfilippo &lt;LinoSanfilippo@gmx.de&gt;
Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>atomic: use &lt;linux/atomic.h&gt;</title>
<updated>2011-07-26T23:49:47Z</updated>
<author>
<name>Arun Sharma</name>
</author>
<published>2011-07-26T23:09:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=60063497a95e716c9a689af3be2687d261f115b4'/>
<id>urn:sha1:60063497a95e716c9a689af3be2687d261f115b4</id>
<content type='text'>
This allows us to move duplicated code in &lt;asm/atomic.h&gt;
(atomic_inc_not_zero() for now) to &lt;linux/atomic.h&gt;

Signed-off-by: Arun Sharma &lt;asharma@fb.com&gt;
Reviewed-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: Mike Frysinger &lt;vapier@gentoo.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fsnotify: remove global fsnotify groups lists</title>
<updated>2010-07-28T14:18:54Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-07-28T14:18:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02436668d98385f5b5d9ffb695a37dadf98ed8a8'/>
<id>urn:sha1:02436668d98385f5b5d9ffb695a37dadf98ed8a8</id>
<content type='text'>
The global fsnotify groups lists were invented as a way to increase the
performance of fsnotify by shortcutting events which were not interesting.
With the changes to walk the object lists rather than global groups lists
these shortcuts are not useful.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: remove group-&gt;mask</title>
<updated>2010-07-28T14:18:54Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-07-28T14:18:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=43709a288ed03aa0e2979ab63dd089b3889645c4'/>
<id>urn:sha1:43709a288ed03aa0e2979ab63dd089b3889645c4</id>
<content type='text'>
group-&gt;mask is now useless.  It was originally a shortcut for fsnotify to
save on performance.  These checks are now redundant, so we remove them.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: remove the global masks</title>
<updated>2010-07-28T14:18:54Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-07-28T14:18:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=03930979afa63e079e9aefd4d3dd429240711027'/>
<id>urn:sha1:03930979afa63e079e9aefd4d3dd429240711027</id>
<content type='text'>
Because we walk the object-&gt;fsnotify_marks list instead of the global
fsnotify groups list we don't need the fsnotify_inode_mask and
fsnotify_vfsmount_mask as these were simply shortcuts in fsnotify() for
performance.  They are now extra checks, rip them out.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: srcu to protect read side of inode and vfsmount locks</title>
<updated>2010-07-28T14:18:52Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-07-28T14:18:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75c1be487a690db43da2c1234fcacd84c982803c'/>
<id>urn:sha1:75c1be487a690db43da2c1234fcacd84c982803c</id>
<content type='text'>
Currently reading the inode-&gt;i_fsnotify_marks or
vfsmount-&gt;mnt_fsnotify_marks lists are protected by a spinlock on both the
read and the write side.  This patch protects the read side of those lists
with a new single srcu.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
</feed>
