<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/fs/bfs, branch v2.6.30</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>fs/Kconfig: move bfs out</title>
<updated>2009-01-22T10:15:57+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-01-22T07:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0ff423849de3fe98c06d30a8ac73103c8741914c'/>
<id>0ff423849de3fe98c06d30a8ac73103c8741914c</id>
<content type='text'>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bfs: check that filesystem fits on the blockdevice</title>
<updated>2009-01-06T23:59:31+00:00</updated>
<author>
<name>Eric Sesterhenn</name>
<email>snakebyte@gmx.de</email>
</author>
<published>2009-01-06T22:43:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=50682bb4de35544466c264c017030de826614367'/>
<id>50682bb4de35544466c264c017030de826614367</id>
<content type='text'>
Since all sanity checks rely on the validity of s_start which gets only
checked to be smaller than s_end, we should also check if s_end is sane.
Now we also try to retrieve the last block of the filesystem, which is
computed by s_end.  If this fails, something is bogus.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Acked-by: Tigran Aivazian &lt;tigran@aivazian.fsnet.co.uk&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>
Since all sanity checks rely on the validity of s_start which gets only
checked to be smaller than s_end, we should also check if s_end is sane.
Now we also try to retrieve the last block of the filesystem, which is
computed by s_end.  If this fails, something is bogus.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Acked-by: Tigran Aivazian &lt;tigran@aivazian.fsnet.co.uk&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>bfs: add some basic sanity checks</title>
<updated>2009-01-06T23:59:31+00:00</updated>
<author>
<name>Eric Sesterhenn</name>
<email>snakebyte@gmx.de</email>
</author>
<published>2009-01-06T22:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e1f89ec95bd28b0927e76c46a7cc0927b7521c1d'/>
<id>e1f89ec95bd28b0927e76c46a7cc0927b7521c1d</id>
<content type='text'>
bfs_fill_super() already touches all inodes, so we can easily add some
cheap sanity checks and check if the inode start and end blocks are
smaller than the maximum number of blocks, the inode start block lies
behind the end block or the file end offset is behind the end of the
filesystem.  Also check if the start of data offset in the super block
fits the filesystem.

The added sanity checks catch softlockup issues early when we try to
sb_bread() lots of blocks in a loop in bfs_readdir() and bfs_find_entry().
 In addition an oom issue in bfs_fill_super() is prevented by this when
s_start is corrupted, which influences imap_len and we try to allocate a
huge info-&gt;si_imap.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Acked-by: Tigran Aivazian &lt;tigran@aivazian.fsnet.co.uk&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>
bfs_fill_super() already touches all inodes, so we can easily add some
cheap sanity checks and check if the inode start and end blocks are
smaller than the maximum number of blocks, the inode start block lies
behind the end block or the file end offset is behind the end of the
filesystem.  Also check if the start of data offset in the super block
fits the filesystem.

The added sanity checks catch softlockup issues early when we try to
sb_bread() lots of blocks in a loop in bfs_readdir() and bfs_find_entry().
 In addition an oom issue in bfs_fill_super() is prevented by this when
s_start is corrupted, which influences imap_len and we try to allocate a
huge info-&gt;si_imap.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Acked-by: Tigran Aivazian &lt;tigran@aivazian.fsnet.co.uk&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>CRED: Wrap task credential accesses in the BFS filesystem</title>
<updated>2008-11-13T23:38:47+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2008-11-13T23:38:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1109b07b7dcb938de7a0d65efc1b4739dc4e9787'/>
<id>1109b07b7dcb938de7a0d65efc1b4739dc4e9787</id>
<content type='text'>
Wrap access to task credentials so that they can be separated more easily from
the task_struct during the introduction of COW creds.

Change most current-&gt;(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().

Change some task-&gt;e?[ug]id to task_e?[ug]id().  In some places it makes more
sense to use RCU directly rather than a convenient wrapper; these will be
addressed by later patches.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Reviewed-by: James Morris &lt;jmorris@namei.org&gt;
Acked-by: Serge Hallyn &lt;serue@us.ibm.com&gt;
Cc: Tigran A. Aivazian &lt;tigran@aivazian.fsnet.co.uk&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Wrap access to task credentials so that they can be separated more easily from
the task_struct during the introduction of COW creds.

Change most current-&gt;(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().

Change some task-&gt;e?[ug]id to task_e?[ug]id().  In some places it makes more
sense to use RCU directly rather than a convenient wrapper; these will be
addressed by later patches.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Reviewed-by: James Morris &lt;jmorris@namei.org&gt;
Acked-by: Serge Hallyn &lt;serue@us.ibm.com&gt;
Cc: Tigran A. Aivazian &lt;tigran@aivazian.fsnet.co.uk&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] fix -&gt;llseek for more directories</title>
<updated>2008-10-23T09:13:21+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2008-09-03T19:53:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3222a3e55f4025acb2a5a4379cf2f2b7df1f1243'/>
<id>3222a3e55f4025acb2a5a4379cf2f2b7df1f1243</id>
<content type='text'>
With this patch all directory fops instances that have a readdir
that doesn't take the BKL are switched to generic_file_llseek.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With this patch all directory fops instances that have a readdir
that doesn't take the BKL are switched to generic_file_llseek.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bfs: fix Lockdep warning</title>
<updated>2008-09-13T21:41:51+00:00</updated>
<author>
<name>Eric Sesterhenn</name>
<email>snakebyte@gmx.de</email>
</author>
<published>2008-09-13T09:33:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1558182f651798164418abf53f76786da0ea4a6f'/>
<id>1558182f651798164418abf53f76786da0ea4a6f</id>
<content type='text'>
This fixes:

  =============================================
  [ INFO: possible recursive locking detected ]
  2.6.27-rc5-00283-g70bb089 #68
  ---------------------------------------------
  touch/6855 is trying to acquire lock:
   (&amp;info-&gt;bfs_lock){--..}, at: [&lt;c02262f5&gt;] bfs_delete_inode+0x9e/0x18c

  but task is already holding lock:
   (&amp;info-&gt;bfs_lock){--..}, at: [&lt;c0226c00&gt;] bfs_create+0x45/0x187

  other info that might help us debug this:
  2 locks held by touch/6855:
   #0:  (&amp;type-&gt;i_mutex_dir_key#5){--..}, at: [&lt;c018ad13&gt;] do_filp_open+0x10b/0x62f
   #1:  (&amp;info-&gt;bfs_lock){--..}, at: [&lt;c0226c00&gt;] bfs_create+0x45/0x187

  stack backtrace:
  Pid: 6855, comm: touch Not tainted 2.6.27-rc5-00283-g70bb089 #68
   [&lt;c013e769&gt;] validate_chain+0x458/0x9f4
   [&lt;c013bece&gt;] ? trace_hardirqs_off+0xb/0xd
   [&lt;c013f36b&gt;] __lock_acquire+0x666/0x6e0
   [&lt;c013f440&gt;] lock_acquire+0x5b/0x77
   [&lt;c02262f5&gt;] ? bfs_delete_inode+0x9e/0x18c
   [&lt;c06aab74&gt;] mutex_lock_nested+0xbc/0x234
   [&lt;c02262f5&gt;] ? bfs_delete_inode+0x9e/0x18c
   [&lt;c02262f5&gt;] ? bfs_delete_inode+0x9e/0x18c
   [&lt;c02262f5&gt;] bfs_delete_inode+0x9e/0x18c
   [&lt;c0226257&gt;] ? bfs_delete_inode+0x0/0x18c
   [&lt;c01925e1&gt;] generic_delete_inode+0x94/0xfe
   [&lt;c019265d&gt;] generic_drop_inode+0x12/0x12f
   [&lt;c0191b7e&gt;] iput+0x4b/0x4e
   [&lt;c0226d1e&gt;] bfs_create+0x163/0x187
   [&lt;c0188b42&gt;] vfs_create+0xa6/0x114
   [&lt;c018adb5&gt;] do_filp_open+0x1ad/0x62f
   [&lt;c0107cdc&gt;] ? native_sched_clock+0x82/0x96
   [&lt;c06ac309&gt;] ? _spin_unlock+0x27/0x3c
   [&lt;c019379e&gt;] ? alloc_fd+0xbf/0xc9
   [&lt;c06ae2f4&gt;] ? sub_preempt_count+0x9d/0xab
   [&lt;c019379e&gt;] ? alloc_fd+0xbf/0xc9
   [&lt;c0180391&gt;] do_sys_open+0x42/0xb8
   [&lt;c041d564&gt;] ? trace_hardirqs_on_thunk+0xc/0x10
   [&lt;c0180449&gt;] sys_open+0x1e/0x26
   [&lt;c01038bd&gt;] sysenter_do_call+0x12/0x31
   =======================

The problem is that we don't unlock the bfs-&gt;lock mutex before calling
iput (we do in the other cases).

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Cc: Tigran Aivazian &lt;tigran@aivazian.fsnet.co.uk&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>
This fixes:

  =============================================
  [ INFO: possible recursive locking detected ]
  2.6.27-rc5-00283-g70bb089 #68
  ---------------------------------------------
  touch/6855 is trying to acquire lock:
   (&amp;info-&gt;bfs_lock){--..}, at: [&lt;c02262f5&gt;] bfs_delete_inode+0x9e/0x18c

  but task is already holding lock:
   (&amp;info-&gt;bfs_lock){--..}, at: [&lt;c0226c00&gt;] bfs_create+0x45/0x187

  other info that might help us debug this:
  2 locks held by touch/6855:
   #0:  (&amp;type-&gt;i_mutex_dir_key#5){--..}, at: [&lt;c018ad13&gt;] do_filp_open+0x10b/0x62f
   #1:  (&amp;info-&gt;bfs_lock){--..}, at: [&lt;c0226c00&gt;] bfs_create+0x45/0x187

  stack backtrace:
  Pid: 6855, comm: touch Not tainted 2.6.27-rc5-00283-g70bb089 #68
   [&lt;c013e769&gt;] validate_chain+0x458/0x9f4
   [&lt;c013bece&gt;] ? trace_hardirqs_off+0xb/0xd
   [&lt;c013f36b&gt;] __lock_acquire+0x666/0x6e0
   [&lt;c013f440&gt;] lock_acquire+0x5b/0x77
   [&lt;c02262f5&gt;] ? bfs_delete_inode+0x9e/0x18c
   [&lt;c06aab74&gt;] mutex_lock_nested+0xbc/0x234
   [&lt;c02262f5&gt;] ? bfs_delete_inode+0x9e/0x18c
   [&lt;c02262f5&gt;] ? bfs_delete_inode+0x9e/0x18c
   [&lt;c02262f5&gt;] bfs_delete_inode+0x9e/0x18c
   [&lt;c0226257&gt;] ? bfs_delete_inode+0x0/0x18c
   [&lt;c01925e1&gt;] generic_delete_inode+0x94/0xfe
   [&lt;c019265d&gt;] generic_drop_inode+0x12/0x12f
   [&lt;c0191b7e&gt;] iput+0x4b/0x4e
   [&lt;c0226d1e&gt;] bfs_create+0x163/0x187
   [&lt;c0188b42&gt;] vfs_create+0xa6/0x114
   [&lt;c018adb5&gt;] do_filp_open+0x1ad/0x62f
   [&lt;c0107cdc&gt;] ? native_sched_clock+0x82/0x96
   [&lt;c06ac309&gt;] ? _spin_unlock+0x27/0x3c
   [&lt;c019379e&gt;] ? alloc_fd+0xbf/0xc9
   [&lt;c06ae2f4&gt;] ? sub_preempt_count+0x9d/0xab
   [&lt;c019379e&gt;] ? alloc_fd+0xbf/0xc9
   [&lt;c0180391&gt;] do_sys_open+0x42/0xb8
   [&lt;c041d564&gt;] ? trace_hardirqs_on_thunk+0xc/0x10
   [&lt;c0180449&gt;] sys_open+0x1e/0x26
   [&lt;c01038bd&gt;] sysenter_do_call+0x12/0x31
   =======================

The problem is that we don't unlock the bfs-&gt;lock mutex before calling
iput (we do in the other cases).

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Cc: Tigran Aivazian &lt;tigran@aivazian.fsnet.co.uk&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>SL*B: drop kmem cache argument from constructor</title>
<updated>2008-07-26T19:00:07+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2008-07-26T02:45:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=51cc50685a4275c6a02653670af9f108a64e01cf'/>
<id>51cc50685a4275c6a02653670af9f108a64e01cf</id>
<content type='text'>
Kmem cache passed to constructor is only needed for constructors that are
themselves multiplexeres.  Nobody uses this "feature", nor does anybody uses
passed kmem cache in non-trivial way, so pass only pointer to object.

Non-trivial places are:
	arch/powerpc/mm/init_64.c
	arch/powerpc/mm/hugetlbpage.c

This is flag day, yes.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Acked-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Acked-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Cc: Jon Tollefson &lt;kniht@linux.vnet.ibm.com&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]
[akpm@linux-foundation.org: fix mm/slab.c]
[akpm@linux-foundation.org: fix ubifs]
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>
Kmem cache passed to constructor is only needed for constructors that are
themselves multiplexeres.  Nobody uses this "feature", nor does anybody uses
passed kmem cache in non-trivial way, so pass only pointer to object.

Non-trivial places are:
	arch/powerpc/mm/init_64.c
	arch/powerpc/mm/hugetlbpage.c

This is flag day, yes.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Acked-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Acked-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Cc: Jon Tollefson &lt;kniht@linux.vnet.ibm.com&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]
[akpm@linux-foundation.org: fix mm/slab.c]
[akpm@linux-foundation.org: fix ubifs]
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>bfs: kill BKL</title>
<updated>2008-07-26T19:00:03+00:00</updated>
<author>
<name>Dmitri Vorobiev</name>
<email>dmitri.vorobiev@movial.fi</email>
</author>
<published>2008-07-26T02:44:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3f165e4cf2af042af7d2440d688299c0d2a48b1f'/>
<id>3f165e4cf2af042af7d2440d688299c0d2a48b1f</id>
<content type='text'>
Replace the BKL-based locking scheme used in the bfs driver by a private
filesystem-wide mutex.

Signed-off-by: Dmitri Vorobiev &lt;dmitri.vorobiev@movial.fi&gt;
Cc: Tigran Aivazian &lt;tigran_aivazian@symantec.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>
Replace the BKL-based locking scheme used in the bfs driver by a private
filesystem-wide mutex.

Signed-off-by: Dmitri Vorobiev &lt;dmitri.vorobiev@movial.fi&gt;
Cc: Tigran Aivazian &lt;tigran_aivazian@symantec.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>bfs: assorted cleanups</title>
<updated>2008-07-26T19:00:03+00:00</updated>
<author>
<name>Dmitri Vorobiev</name>
<email>dmitri.vorobiev@movial.fi</email>
</author>
<published>2008-07-26T02:44:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=75b25b4cabb7ce956c36442bf8225659b1864866'/>
<id>75b25b4cabb7ce956c36442bf8225659b1864866</id>
<content type='text'>
This patch makes the following cleanups:

	o removing an unused variable from bfs_fill_super();
	o removing unneeded blank spaces from pointer
	  definitions.

Signed-off-by: Dmitri Vorobiev &lt;dmitri.vorobiev@movial.fi&gt;
Cc: Tigran Aivazian &lt;tigran_aivazian@symantec.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>
This patch makes the following cleanups:

	o removing an unused variable from bfs_fill_super();
	o removing unneeded blank spaces from pointer
	  definitions.

Signed-off-by: Dmitri Vorobiev &lt;dmitri.vorobiev@movial.fi&gt;
Cc: Tigran Aivazian &lt;tigran_aivazian@symantec.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>fs: replace remaining __FUNCTION__ occurrences</title>
<updated>2008-04-30T15:29:54+00:00</updated>
<author>
<name>Harvey Harrison</name>
<email>harvey.harrison@gmail.com</email>
</author>
<published>2008-04-30T07:55:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8e24eea728068bbeb6a3c500b848f883a20bf225'/>
<id>8e24eea728068bbeb6a3c500b848f883a20bf225</id>
<content type='text'>
__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison &lt;harvey.harrison@gmail.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>
__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison &lt;harvey.harrison@gmail.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>
</feed>
