<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/fs/bfs/dir.c, branch v2.6.34.4</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>headers: smp_lock.h redux</title>
<updated>2009-07-12T19:22:34+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-07-11T18:08:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=405f55712dfe464b3240d7816cc4fe4174831be2'/>
<id>405f55712dfe464b3240d7816cc4fe4174831be2</id>
<content type='text'>
* Remove smp_lock.h from files which don't need it (including some headers!)
* Add smp_lock.h to files which do need it
* Make smp_lock.h include conditional in hardirq.h
  It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT

  This will make hardirq.h inclusion cheaper for every PREEMPT=n config
  (which includes allmodconfig/allyesconfig, BTW)

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&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>
* Remove smp_lock.h from files which don't need it (including some headers!)
* Add smp_lock.h to files which do need it
* Make smp_lock.h include conditional in hardirq.h
  It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT

  This will make hardirq.h inclusion cheaper for every PREEMPT=n config
  (which includes allmodconfig/allyesconfig, BTW)

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>repair bfs_write_inode(), switch bfs to simple_fsync()</title>
<updated>2009-06-12T01:36:14+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2009-06-08T05:15:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4427f0c36e22e2cd6696b2fe7643e9756a14b3d3'/>
<id>4427f0c36e22e2cd6696b2fe7643e9756a14b3d3</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>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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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>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.toradex.cn/cgit/linux-toradex.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>iget: stop BFS from using iget() and read_inode()</title>
<updated>2008-02-07T16:42:27+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2008-02-07T08:15:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e33ab086ae227a34e34b17e86dbb9d2dbaebb489'/>
<id>e33ab086ae227a34e34b17e86dbb9d2dbaebb489</id>
<content type='text'>
Stop the BFS filesystem from using iget() and read_inode().  Replace
bfs_read_inode() with bfs_iget(), and call that instead of iget().  bfs_iget()
then uses iget_locked() directly and returns a proper error code instead of an
inode in the event of an error.

bfs_fill_super() returns any error incurred when getting the root inode
instead of EINVAL.

[kamalesh@linux.vnet.ibm.com: build fix]
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Kamalesh Babulal &lt;kamalesh@linux.vnet.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>
Stop the BFS filesystem from using iget() and read_inode().  Replace
bfs_read_inode() with bfs_iget(), and call that instead of iget().  bfs_iget()
then uses iget_locked() directly and returns a proper error code instead of an
inode in the event of an error.

bfs_fill_super() returns any error incurred when getting the root inode
instead of EINVAL.

[kamalesh@linux.vnet.ibm.com: build fix]
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Kamalesh Babulal &lt;kamalesh@linux.vnet.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>Fixes to the BFS filesystem driver</title>
<updated>2007-11-15T02:45:40+00:00</updated>
<author>
<name>Dmitri Vorobiev</name>
<email>dmitri.vorobiev@gmail.com</email>
</author>
<published>2007-11-15T00:59:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f433dc56344cb72cc3de5ba0819021cec3aef807'/>
<id>f433dc56344cb72cc3de5ba0819021cec3aef807</id>
<content type='text'>
I found a few bugs in the BFS driver.  Detailed description of the bugs as
well as the steps to reproduce the errors are given in the kernel bugzilla.
 Please follow these links for more information:

http://bugzilla.kernel.org/show_bug.cgi?id=9363
http://bugzilla.kernel.org/show_bug.cgi?id=9364
http://bugzilla.kernel.org/show_bug.cgi?id=9365
http://bugzilla.kernel.org/show_bug.cgi?id=9366

This patch fixes the bugs described above.  Besides, the patch introduces
coding style changes to make the BFS driver conform to the requirements
specified for Linux kernel code.  Finally, I made a few cosmetic changes
such as removal of trivial debug output.

Also, the patch removes the fields `si_lf_ioff' and `si_lf_sblk' of the
in-core superblock structure.  These fields are initialized but never
actually used.

If you are wondering why I need BFS, here is the answer: I am using this
driver in the context of Linux kernel classes I am teaching in the Moscow
State University and in the International Institute of Information
Technology in Pune, India.

Signed-off-by: Dmitri Vorobiev &lt;dmitri.vorobiev@gmail.com&gt;
Cc: Tigran Aivazian &lt;tigran@veritas.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>
I found a few bugs in the BFS driver.  Detailed description of the bugs as
well as the steps to reproduce the errors are given in the kernel bugzilla.
 Please follow these links for more information:

http://bugzilla.kernel.org/show_bug.cgi?id=9363
http://bugzilla.kernel.org/show_bug.cgi?id=9364
http://bugzilla.kernel.org/show_bug.cgi?id=9365
http://bugzilla.kernel.org/show_bug.cgi?id=9366

This patch fixes the bugs described above.  Besides, the patch introduces
coding style changes to make the BFS driver conform to the requirements
specified for Linux kernel code.  Finally, I made a few cosmetic changes
such as removal of trivial debug output.

Also, the patch removes the fields `si_lf_ioff' and `si_lf_sblk' of the
in-core superblock structure.  These fields are initialized but never
actually used.

If you are wondering why I need BFS, here is the answer: I am using this
driver in the context of Linux kernel classes I am teaching in the Moscow
State University and in the International Institute of Information
Technology in Pune, India.

Signed-off-by: Dmitri Vorobiev &lt;dmitri.vorobiev@gmail.com&gt;
Cc: Tigran Aivazian &lt;tigran@veritas.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] mark struct inode_operations const 1</title>
<updated>2007-02-12T17:48:46+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2007-02-12T08:55:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=754661f143e70d66eae6c48532ca245aa05dec0e'/>
<id>754661f143e70d66eae6c48532ca245aa05dec0e</id>
<content type='text'>
Many struct inode_operations in the kernel can be "const".  Marking them const
moves these to the .rodata section, which avoids false sharing with potential
dirty data.  In addition it'll catch accidental writes at compile time to
these shared resources.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.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>
Many struct inode_operations in the kernel can be "const".  Marking them const
moves these to the .rodata section, which avoids false sharing with potential
dirty data.  In addition it'll catch accidental writes at compile time to
these shared resources.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.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] struct path: convert bfs</title>
<updated>2006-12-08T16:28:44+00:00</updated>
<author>
<name>Josef Sipek</name>
<email>jsipek@fsl.cs.sunysb.edu</email>
</author>
<published>2006-12-08T10:36:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=61a8424ab8f611d199bfc8ca329ec0ea77a4d4ea'/>
<id>61a8424ab8f611d199bfc8ca329ec0ea77a4d4ea</id>
<content type='text'>
Signed-off-by: Josef Sipek &lt;jsipek@fsl.cs.sunysb.edu&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Josef Sipek &lt;jsipek@fsl.cs.sunysb.edu&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
