<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/reiserfs/ioctl.c, branch linux-3.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-01-04T03:52:40Z</updated>
<entry>
<title>vfs: mnt_drop_write_file()</title>
<updated>2012-01-04T03:52:40Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2011-12-09T13:06:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2a79f17e4a641a2f463cb512cb0ec349844a147b'/>
<id>urn:sha1:2a79f17e4a641a2f463cb512cb0ec349844a147b</id>
<content type='text'>
new helper (wrapper around mnt_drop_write()) to be used in pair with
mnt_want_write_file().

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>switch a bunch of places to mnt_want_write_file()</title>
<updated>2012-01-04T03:52:35Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2011-11-23T16:57:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a561be7100cd610bd2e082f3211c1dfb45835817'/>
<id>urn:sha1:a561be7100cd610bd2e082f3211c1dfb45835817</id>
<content type='text'>
it's both faster (in case when file has been opened for write) and cleaner.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>userns: rename is_owner_or_cap to inode_owner_or_capable</title>
<updated>2011-03-24T02:47:13Z</updated>
<author>
<name>Serge E. Hallyn</name>
</author>
<published>2011-03-23T23:43:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2e1496707560ecf98e9b0604622c0990f94861d3'/>
<id>urn:sha1:2e1496707560ecf98e9b0604622c0990f94861d3</id>
<content type='text'>
And give it a kernel-doc comment.

[akpm@linux-foundation.org: btrfs changed in linux-next]
Signed-off-by: Serge E. Hallyn &lt;serge.hallyn@canonical.com&gt;
Cc: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Cc: Daniel Lezcano &lt;daniel.lezcano@free.fr&gt;
Acked-by: David Howells &lt;dhowells@redhat.com&gt;
Cc: James Morris &lt;jmorris@namei.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>reiserfs: fix inode mutex - reiserfs lock misordering</title>
<updated>2010-11-24T21:50:48Z</updated>
<author>
<name>Frederic Weisbecker</name>
</author>
<published>2010-11-24T20:57:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da905873effecd1c0166e578bc4b5006f041b18b'/>
<id>urn:sha1:da905873effecd1c0166e578bc4b5006f041b18b</id>
<content type='text'>
reiserfs_unpack() locks the inode mutex with reiserfs_mutex_lock_safe()
to protect against reiserfs lock dependency.  However this protection
requires to have the reiserfs lock to be locked.

This is the case if reiserfs_unpack() is called by reiserfs_ioctl but
not from reiserfs_quota_on() when it tries to unpack tails of quota
files.

Fix the ordering of the two locks in reiserfs_unpack() to fix this
issue.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Reported-by: Markus Gapp &lt;markus.gapp@gmx.net&gt;
Reported-by: Jan Kara &lt;jack@suse.cz&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: &lt;stable@kernel.org&gt;		[2.6.36.x]
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>BKL: remove extraneous #include &lt;smp_lock.h&gt;</title>
<updated>2010-11-17T16:59:32Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2010-11-17T15:26:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=451a3c24b0135bce54542009b5fde43846c7cf67'/>
<id>urn:sha1:451a3c24b0135bce54542009b5fde43846c7cf67</id>
<content type='text'>
The big kernel lock has been removed from all these files at some point,
leaving only the #include.

Remove this too as a cleanup.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fs: kill block_prepare_write</title>
<updated>2010-10-26T01:18:20Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-06T08:47:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ebdec241d509cf69f6ebf1ecdc036359d3dbe154'/>
<id>urn:sha1:ebdec241d509cf69f6ebf1ecdc036359d3dbe154</id>
<content type='text'>
__block_write_begin and block_prepare_write are identical except for slightly
different calling conventions.  Convert all callers to the __block_write_begin
calling conventions and drop block_prepare_write.

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>reiserfs: fix unwanted reiserfs lock recursion</title>
<updated>2010-10-01T17:50:59Z</updated>
<author>
<name>Frederic Weisbecker</name>
</author>
<published>2010-09-30T22:15:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d8117e72bf453dd9d85e0cd322ce4a0f8bccbc0'/>
<id>urn:sha1:9d8117e72bf453dd9d85e0cd322ce4a0f8bccbc0</id>
<content type='text'>
Prevent from recursively locking the reiserfs lock in reiserfs_unpack()
because we may call journal_begin() that requires the lock to be taken
only once, otherwise it won't be able to release the lock while taking
other mutexes, ending up in inverted dependencies between the journal
mutex and the reiserfs lock for example.

This fixes:

  =======================================================
  [ INFO: possible circular locking dependency detected ]
  2.6.35.4.4a #3
  -------------------------------------------------------
  lilo/1620 is trying to acquire lock:
   (&amp;journal-&gt;j_mutex){+.+...}, at: [&lt;d0325bff&gt;] do_journal_begin_r+0x7f/0x340 [reiserfs]

  but task is already holding lock:
   (&amp;REISERFS_SB(s)-&gt;lock){+.+.+.}, at: [&lt;d032a278&gt;] reiserfs_write_lock+0x28/0x40 [reiserfs]

  which lock already depends on the new lock.

  the existing dependency chain (in reverse order) is:

  -&gt; #1 (&amp;REISERFS_SB(s)-&gt;lock){+.+.+.}:
         [&lt;c10562b7&gt;] lock_acquire+0x67/0x80
         [&lt;c12facad&gt;] __mutex_lock_common+0x4d/0x410
         [&lt;c12fb0c8&gt;] mutex_lock_nested+0x18/0x20
         [&lt;d032a278&gt;] reiserfs_write_lock+0x28/0x40 [reiserfs]
         [&lt;d0325c06&gt;] do_journal_begin_r+0x86/0x340 [reiserfs]
         [&lt;d0325f77&gt;] journal_begin+0x77/0x140 [reiserfs]
         [&lt;d0315be4&gt;] reiserfs_remount+0x224/0x530 [reiserfs]
         [&lt;c10b6a20&gt;] do_remount_sb+0x60/0x110
         [&lt;c10cee25&gt;] do_mount+0x625/0x790
         [&lt;c10cf014&gt;] sys_mount+0x84/0xb0
         [&lt;c12fca3d&gt;] syscall_call+0x7/0xb

  -&gt; #0 (&amp;journal-&gt;j_mutex){+.+...}:
         [&lt;c10560f6&gt;] __lock_acquire+0x1026/0x1180
         [&lt;c10562b7&gt;] lock_acquire+0x67/0x80
         [&lt;c12facad&gt;] __mutex_lock_common+0x4d/0x410
         [&lt;c12fb0c8&gt;] mutex_lock_nested+0x18/0x20
         [&lt;d0325bff&gt;] do_journal_begin_r+0x7f/0x340 [reiserfs]
         [&lt;d0325f77&gt;] journal_begin+0x77/0x140 [reiserfs]
         [&lt;d0326271&gt;] reiserfs_persistent_transaction+0x41/0x90 [reiserfs]
         [&lt;d030d06c&gt;] reiserfs_get_block+0x22c/0x1530 [reiserfs]
         [&lt;c10db9db&gt;] __block_prepare_write+0x1bb/0x3a0
         [&lt;c10dbbe6&gt;] block_prepare_write+0x26/0x40
         [&lt;d030b738&gt;] reiserfs_prepare_write+0x88/0x170 [reiserfs]
         [&lt;d03294d6&gt;] reiserfs_unpack+0xe6/0x120 [reiserfs]
         [&lt;d0329782&gt;] reiserfs_ioctl+0x272/0x320 [reiserfs]
         [&lt;c10c3188&gt;] vfs_ioctl+0x28/0xa0
         [&lt;c10c3bbd&gt;] do_vfs_ioctl+0x32d/0x5c0
         [&lt;c10c3eb3&gt;] sys_ioctl+0x63/0x70
         [&lt;c12fca3d&gt;] syscall_call+0x7/0xb

  other info that might help us debug this:

  2 locks held by lilo/1620:
   #0:  (&amp;sb-&gt;s_type-&gt;i_mutex_key#8){+.+.+.}, at: [&lt;d032945a&gt;] reiserfs_unpack+0x6a/0x120 [reiserfs]
   #1:  (&amp;REISERFS_SB(s)-&gt;lock){+.+.+.}, at: [&lt;d032a278&gt;] reiserfs_write_lock+0x28/0x40 [reiserfs]

  stack backtrace:
  Pid: 1620, comm: lilo Not tainted 2.6.35.4.4a #3
  Call Trace:
   [&lt;c10560f6&gt;] __lock_acquire+0x1026/0x1180
   [&lt;c10562b7&gt;] lock_acquire+0x67/0x80
   [&lt;c12facad&gt;] __mutex_lock_common+0x4d/0x410
   [&lt;c12fb0c8&gt;] mutex_lock_nested+0x18/0x20
   [&lt;d0325bff&gt;] do_journal_begin_r+0x7f/0x340 [reiserfs]
   [&lt;d0325f77&gt;] journal_begin+0x77/0x140 [reiserfs]
   [&lt;d0326271&gt;] reiserfs_persistent_transaction+0x41/0x90 [reiserfs]
   [&lt;d030d06c&gt;] reiserfs_get_block+0x22c/0x1530 [reiserfs]
   [&lt;c10db9db&gt;] __block_prepare_write+0x1bb/0x3a0
   [&lt;c10dbbe6&gt;] block_prepare_write+0x26/0x40
   [&lt;d030b738&gt;] reiserfs_prepare_write+0x88/0x170 [reiserfs]
   [&lt;d03294d6&gt;] reiserfs_unpack+0xe6/0x120 [reiserfs]
   [&lt;d0329782&gt;] reiserfs_ioctl+0x272/0x320 [reiserfs]
   [&lt;c10c3188&gt;] vfs_ioctl+0x28/0xa0
   [&lt;c10c3bbd&gt;] do_vfs_ioctl+0x32d/0x5c0
   [&lt;c10c3eb3&gt;] sys_ioctl+0x63/0x70
   [&lt;c12fca3d&gt;] syscall_call+0x7/0xb

Reported-by: Jarek Poplawski &lt;jarkao2@gmail.com&gt;
Tested-by: Jarek Poplawski &lt;jarkao2@gmail.com&gt;
Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: All since 2.6.32 &lt;stable@kernel.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>reiserfs: fix dependency inversion between inode and reiserfs mutexes</title>
<updated>2010-10-01T17:50:59Z</updated>
<author>
<name>Frederic Weisbecker</name>
</author>
<published>2010-09-30T22:15:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3f259d092c7a2fdf217823e8f1838530adb0cdb0'/>
<id>urn:sha1:3f259d092c7a2fdf217823e8f1838530adb0cdb0</id>
<content type='text'>
The reiserfs mutex already depends on the inode mutex, so we can't lock
the inode mutex in reiserfs_unpack() without using the safe locking API,
because reiserfs_unpack() is always called with the reiserfs mutex locked.

This fixes:

  =======================================================
  [ INFO: possible circular locking dependency detected ]
  2.6.35c #13
  -------------------------------------------------------
  lilo/1606 is trying to acquire lock:
   (&amp;sb-&gt;s_type-&gt;i_mutex_key#8){+.+.+.}, at: [&lt;d0329450&gt;] reiserfs_unpack+0x60/0x110 [reiserfs]

  but task is already holding lock:
   (&amp;REISERFS_SB(s)-&gt;lock){+.+.+.}, at: [&lt;d032a268&gt;] reiserfs_write_lock+0x28/0x40 [reiserfs]

  which lock already depends on the new lock.

  the existing dependency chain (in reverse order) is:

  -&gt; #1 (&amp;REISERFS_SB(s)-&gt;lock){+.+.+.}:
         [&lt;c1056347&gt;] lock_acquire+0x67/0x80
         [&lt;c12f083d&gt;] __mutex_lock_common+0x4d/0x410
         [&lt;c12f0c58&gt;] mutex_lock_nested+0x18/0x20
         [&lt;d032a268&gt;] reiserfs_write_lock+0x28/0x40 [reiserfs]
         [&lt;d0329e9a&gt;] reiserfs_lookup_privroot+0x2a/0x90 [reiserfs]
         [&lt;d0316b81&gt;] reiserfs_fill_super+0x941/0xe60 [reiserfs]
         [&lt;c10b7d17&gt;] get_sb_bdev+0x117/0x170
         [&lt;d0313e21&gt;] get_super_block+0x21/0x30 [reiserfs]
         [&lt;c10b74ba&gt;] vfs_kern_mount+0x6a/0x1b0
         [&lt;c10b7659&gt;] do_kern_mount+0x39/0xe0
         [&lt;c10cebe0&gt;] do_mount+0x340/0x790
         [&lt;c10cf0b4&gt;] sys_mount+0x84/0xb0
         [&lt;c12f25cd&gt;] syscall_call+0x7/0xb

  -&gt; #0 (&amp;sb-&gt;s_type-&gt;i_mutex_key#8){+.+.+.}:
         [&lt;c1056186&gt;] __lock_acquire+0x1026/0x1180
         [&lt;c1056347&gt;] lock_acquire+0x67/0x80
         [&lt;c12f083d&gt;] __mutex_lock_common+0x4d/0x410
         [&lt;c12f0c58&gt;] mutex_lock_nested+0x18/0x20
         [&lt;d0329450&gt;] reiserfs_unpack+0x60/0x110 [reiserfs]
         [&lt;d0329772&gt;] reiserfs_ioctl+0x272/0x320 [reiserfs]
         [&lt;c10c3228&gt;] vfs_ioctl+0x28/0xa0
         [&lt;c10c3c5d&gt;] do_vfs_ioctl+0x32d/0x5c0
         [&lt;c10c3f53&gt;] sys_ioctl+0x63/0x70
         [&lt;c12f25cd&gt;] syscall_call+0x7/0xb

  other info that might help us debug this:

  1 lock held by lilo/1606:
   #0:  (&amp;REISERFS_SB(s)-&gt;lock){+.+.+.}, at: [&lt;d032a268&gt;] reiserfs_write_lock+0x28/0x40 [reiserfs]

  stack backtrace:
  Pid: 1606, comm: lilo Not tainted 2.6.35c #13
  Call Trace:
   [&lt;c1056186&gt;] __lock_acquire+0x1026/0x1180
   [&lt;c1056347&gt;] lock_acquire+0x67/0x80
   [&lt;c12f083d&gt;] __mutex_lock_common+0x4d/0x410
   [&lt;c12f0c58&gt;] mutex_lock_nested+0x18/0x20
   [&lt;d0329450&gt;] reiserfs_unpack+0x60/0x110 [reiserfs]
   [&lt;d0329772&gt;] reiserfs_ioctl+0x272/0x320 [reiserfs]
   [&lt;c10c3228&gt;] vfs_ioctl+0x28/0xa0
   [&lt;c10c3c5d&gt;] do_vfs_ioctl+0x32d/0x5c0
   [&lt;c10c3f53&gt;] sys_ioctl+0x63/0x70
   [&lt;c12f25cd&gt;] syscall_call+0x7/0xb

Reported-by: Jarek Poplawski &lt;jarkao2@gmail.com&gt;
Tested-by: Jarek Poplawski &lt;jarkao2@gmail.com&gt;
Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: &lt;stable@kernel.org&gt;		[2.6.32 and later]
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>reiserfs: Fix unreachable statement</title>
<updated>2010-01-07T13:03:18Z</updated>
<author>
<name>Jiri Slaby</name>
</author>
<published>2010-01-06T22:09:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e0baec1b63632f25ea8101b76edaca0accc061ec'/>
<id>urn:sha1:e0baec1b63632f25ea8101b76edaca0accc061ec</id>
<content type='text'>
Stanse found an unreachable statement in reiserfs_ioctl. There is a
if followed by error assignment and `break' with no braces. Add the
braces so that we don't break every time, but only in error case,
so that REISERFS_IOC_SETVERSION actually works when it returns no
error.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Cc: Reiserfs &lt;reiserfs-devel@vger.kernel.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
</content>
</entry>
<entry>
<title>kill-the-bkl/reiserfs: definitely drop the bkl from reiserfs_ioctl()</title>
<updated>2009-10-14T21:28:12Z</updated>
<author>
<name>Frederic Weisbecker</name>
</author>
<published>2009-10-14T21:22:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=205cb37b89ab37db553907e5ac17962eec561804'/>
<id>urn:sha1:205cb37b89ab37db553907e5ac17962eec561804</id>
<content type='text'>
The reiserfs ioctl path doesn't need the big kernel lock anymore , now
that the filesystem synchronizes through its own lock.

We can then turn reiserfs_ioctl() into an unlocked_ioctl callback.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Chris Mason &lt;chris.mason@oracle.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Alexander Beregalov &lt;a.beregalov@gmail.com&gt;
Cc: Laurent Riffard &lt;laurent.riffard@free.fr&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
</feed>
