<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/notify/fsnotify.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-10-28T21:22:13Z</updated>
<entry>
<title>fsnotify: call fsnotify_parent in perm events</title>
<updated>2010-10-28T21:22:13Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-10-28T21:21:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52420392c81c8712f555e6bcd116d8bd214ce43a'/>
<id>urn:sha1:52420392c81c8712f555e6bcd116d8bd214ce43a</id>
<content type='text'>
fsnotify perm events do not call fsnotify parent.  That means you cannot
register a perm event on a directory and enforce permissions on all inodes in
that directory.  This patch fixes that situation.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: correctly handle return codes from listeners</title>
<updated>2010-10-28T21:22:13Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-10-28T21:21:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ff8bcbd03da881bf1171910c6c07d44bd3c0a234'/>
<id>urn:sha1:ff8bcbd03da881bf1171910c6c07d44bd3c0a234</id>
<content type='text'>
When fsnotify groups return errors they are ignored.  For permissions
events these should be passed back up the stack, but for most events these
should continue to be ignored.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: use dget_parent</title>
<updated>2010-10-26T01:26:14Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-10T09:36:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4d4eb36679adbdd75495e1bbfe7ac40e4ae41dea'/>
<id>urn:sha1:4d4eb36679adbdd75495e1bbfe7ac40e4ae41dea</id>
<content type='text'>
Use dget_parent instead of opencoding it.  This simplifies the code, but
more importanly prepares for the more complicated locking for a parent
dget in the dcache scale patch series.

It means we do grab a reference to the parent now if need to be watched,
but not with the specified mask.  If this turns out to be a problem
we'll have to revisit it, but for now let's keep as much as possible
dcache internals inside dcache.[ch].

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>fsnotify: drop two useless bools in the fnsotify main loop</title>
<updated>2010-08-28T01:42:11Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-08-28T01:42:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=92b4678efa8ce0de9b1e01a74e3d13c4002a4136'/>
<id>urn:sha1:92b4678efa8ce0de9b1e01a74e3d13c4002a4136</id>
<content type='text'>
The fsnotify main loop has 2 bools which indicated if we processed the
inode or vfsmount mark in that particular pass through the loop.  These
bool can we replaced with the inode_group and vfsmount_group variables
and actually make the code a little easier to understand.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: fix list walk order</title>
<updated>2010-08-28T01:41:26Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-08-28T01:24:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f72adfd540bacc4f6ff57a7d708b1a6c8906bdb4'/>
<id>urn:sha1:f72adfd540bacc4f6ff57a7d708b1a6c8906bdb4</id>
<content type='text'>
Marks were stored on the inode and vfsmonut mark list in order from
highest memory address to lowest memory address.  The code to walk those
lists thought they were in order from lowest to highest with
unpredictable results when trying to match up marks from each.  It was
possible that extra events would be sent to userspace when inode
marks ignoring events wouldn't get matched with the vfsmount marks.

This problem only affected fanotify when using both vfsmount and inode
marks simultaneously.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: fix ignored mask handling between inode and vfsmount marks</title>
<updated>2010-08-23T00:09:41Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-08-18T16:25:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=84e1ab4d875922c034db7f4f814ac445a20a14bd'/>
<id>urn:sha1:84e1ab4d875922c034db7f4f814ac445a20a14bd</id>
<content type='text'>
The interesting 2 list lockstep walking didn't quite work out if the inode
marks only had ignores and the vfsmount list requested events.  The code to
shortcut list traversal would not run the inode list since it didn't have real
event requests.  This code forces inode list traversal when a vfsmount mark
matches the event type.  Maybe we could add an i_fsnotify_ignored_mask field
to struct inode to get the shortcut back, but it doesn't seem worth it to grow
struct inode again.

I bet with the recent changes to lock the way we do now it would actually not
be a major perf hit to just drop i_fsnotify_mark_mask altogether.  But that is
for another day.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fsnotify: reset used_inode and used_vfsmount on each pass</title>
<updated>2010-08-23T00:09:41Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-08-18T16:25:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5f3f259fa8f1d7969360acfad5307d03c2f53d63'/>
<id>urn:sha1:5f3f259fa8f1d7969360acfad5307d03c2f53d63</id>
<content type='text'>
The fsnotify main loop has 2 booleans which tell if a particular mark was
sent to the listeners or if it should be processed in the next pass.  The
problem is that the booleans were not reset on each traversal of the loop.
So marks could get skipped even when they were not sent to the notifiers.

Reported-by: Tvrtko Ursulin &lt;tvrtko.ursulin@sophos.com&gt;
Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>fanotify: do not dereference inode_mark when it is unset</title>
<updated>2010-08-23T00:09:41Z</updated>
<author>
<name>Eric Paris</name>
</author>
<published>2010-08-18T16:25:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=faa9560ae76ef50a3cbfb1a6afc0343fd8172374'/>
<id>urn:sha1:faa9560ae76ef50a3cbfb1a6afc0343fd8172374</id>
<content type='text'>
The fanotify code is supposed to get the group from the mark.  It accidentally
only used the inode_mark.  If the vfsmount_mark was set but not the inode_mark
it would deref the NULL inode_mark.  Get the group from the correct place.

Reported-by: Tvrtko Ursulin &lt;tvrtko.ursulin@sophos.com&gt;
Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>Revert "fsnotify: store struct file not struct path"</title>
<updated>2010-08-12T21:23:04Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2010-08-12T21:23:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2069601b3f0ea38170d4b509b89f3ca0a373bdc1'/>
<id>urn:sha1:2069601b3f0ea38170d4b509b89f3ca0a373bdc1</id>
<content type='text'>
This reverts commit 3bcf3860a4ff9bbc522820b4b765e65e4deceb3e (and the
accompanying commit c1e5c954020e "vfs/fsnotify: fsnotify_close can delay
the final work in fput" that was a horribly ugly hack to make it work at
all).

The 'struct file' approach not only causes that disgusting hack, it
somehow breaks pulseaudio, probably due to some other subtlety with
f_count handling.

Fix up various conflicts due to later fsnotify work.

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fanotify: use both marks when possible</title>
<updated>2010-07-28T14:18:55Z</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=1968f5eed54ce47bde488fd9a450912e4a2d7138'/>
<id>urn:sha1:1968f5eed54ce47bde488fd9a450912e4a2d7138</id>
<content type='text'>
fanotify currently, when given a vfsmount_mark will look up (if it exists)
the corresponding inode mark.  This patch drops that lookup and uses the
mark provided.

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