<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/fs/block_dev.c, branch v2.6.21.7</title>
<subtitle>Clone of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/'/>
<entry>
<title>[PATCH] lockdep: annotate BLKPG_DEL_PARTITION</title>
<updated>2007-02-21T01:10:16+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2007-02-20T21:58:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=6d740cd5b18bc8128e70f98cfde8c74ebd21cea1'/>
<id>6d740cd5b18bc8128e70f98cfde8c74ebd21cea1</id>
<content type='text'>
&gt;=============================================
&gt;[ INFO: possible recursive locking detected ]
&gt;2.6.19-1.2909.fc7 #1
&gt;---------------------------------------------
&gt;anaconda/587 is trying to acquire lock:
&gt; (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;but task is already holding lock:
&gt; (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;other info that might help us debug this:
&gt;1 lock held by anaconda/587:
&gt; #0:  (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;stack backtrace:
&gt; [&lt;c0405812&gt;] show_trace_log_lvl+0x1a/0x2f
&gt; [&lt;c0405db2&gt;] show_trace+0x12/0x14
&gt; [&lt;c0405e36&gt;] dump_stack+0x16/0x18
&gt; [&lt;c043bd84&gt;] __lock_acquire+0x116/0xa09
&gt; [&lt;c043c960&gt;] lock_acquire+0x56/0x6f
&gt; [&lt;c05fb1fa&gt;] __mutex_lock_slowpath+0xe5/0x24a
&gt; [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt; [&lt;c04d82fb&gt;] blkdev_ioctl+0x600/0x76d
&gt; [&lt;c04946b1&gt;] block_ioctl+0x1b/0x1f
&gt; [&lt;c047ed5a&gt;] do_ioctl+0x22/0x68
&gt; [&lt;c047eff2&gt;] vfs_ioctl+0x252/0x265
&gt; [&lt;c047f04e&gt;] sys_ioctl+0x49/0x63
&gt; [&lt;c0404070&gt;] syscall_call+0x7/0xb

Annotate BLKPG_DEL_PARTITION's bd_mutex locking and add a little comment
clarifying the bd_mutex locking, because I confused myself and initially
thought the lock order was wrong too.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Neil Brown &lt;neilb@suse.de&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>
&gt;=============================================
&gt;[ INFO: possible recursive locking detected ]
&gt;2.6.19-1.2909.fc7 #1
&gt;---------------------------------------------
&gt;anaconda/587 is trying to acquire lock:
&gt; (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;but task is already holding lock:
&gt; (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;other info that might help us debug this:
&gt;1 lock held by anaconda/587:
&gt; #0:  (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;stack backtrace:
&gt; [&lt;c0405812&gt;] show_trace_log_lvl+0x1a/0x2f
&gt; [&lt;c0405db2&gt;] show_trace+0x12/0x14
&gt; [&lt;c0405e36&gt;] dump_stack+0x16/0x18
&gt; [&lt;c043bd84&gt;] __lock_acquire+0x116/0xa09
&gt; [&lt;c043c960&gt;] lock_acquire+0x56/0x6f
&gt; [&lt;c05fb1fa&gt;] __mutex_lock_slowpath+0xe5/0x24a
&gt; [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt; [&lt;c04d82fb&gt;] blkdev_ioctl+0x600/0x76d
&gt; [&lt;c04946b1&gt;] block_ioctl+0x1b/0x1f
&gt; [&lt;c047ed5a&gt;] do_ioctl+0x22/0x68
&gt; [&lt;c047eff2&gt;] vfs_ioctl+0x252/0x265
&gt; [&lt;c047f04e&gt;] sys_ioctl+0x49/0x63
&gt; [&lt;c0404070&gt;] syscall_call+0x7/0xb

Annotate BLKPG_DEL_PARTITION's bd_mutex locking and add a little comment
clarifying the bd_mutex locking, because I confused myself and initially
thought the lock order was wrong too.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Neil Brown &lt;neilb@suse.de&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 super_operations const</title>
<updated>2007-02-12T17:48:47+00:00</updated>
<author>
<name>Josef 'Jeff' Sipek</name>
<email>jsipek@cs.sunysb.edu</email>
</author>
<published>2007-02-12T08:55:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=ee9b6d61a2a43c5952eb43283f8db284a4e70b8a'/>
<id>ee9b6d61a2a43c5952eb43283f8db284a4e70b8a</id>
<content type='text'>
This patch is inspired by Arjan's "Patch series to mark struct
file_operations and struct inode_operations const".

Compile tested with gcc &amp; sparse.

Signed-off-by: Josef 'Jeff' Sipek &lt;jsipek@cs.sunysb.edu&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 is inspired by Arjan's "Patch series to mark struct
file_operations and struct inode_operations const".

Compile tested with gcc &amp; sparse.

Signed-off-by: Josef 'Jeff' Sipek &lt;jsipek@cs.sunysb.edu&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] revert blockdev direct io back to 2.6.19 version</title>
<updated>2007-02-03T19:26:06+00:00</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@osdl.org</email>
</author>
<published>2007-02-03T09:14:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=b2e895dbd80c420bfc0937c3729b4afe073b3848'/>
<id>b2e895dbd80c420bfc0937c3729b4afe073b3848</id>
<content type='text'>
Andrew Vasquez is reporting as-iosched oopses and a 65% throughput
slowdown due to the recent special-casing of direct-io against
blockdevs.  We don't know why either of these things are occurring.

The patch minimally reverts us back to the 2.6.19 code for a 2.6.20
release.

Cc: Andrew Vasquez &lt;andrew.vasquez@qlogic.com&gt;
Cc: Ken Chen &lt;kenchen@google.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>
Andrew Vasquez is reporting as-iosched oopses and a 65% throughput
slowdown due to the recent special-casing of direct-io against
blockdevs.  We don't know why either of these things are occurring.

The patch minimally reverts us back to the 2.6.19 code for a 2.6.20
release.

Cc: Andrew Vasquez &lt;andrew.vasquez@qlogic.com&gt;
Cc: Ken Chen &lt;kenchen@google.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] fix blk_direct_IO bio preparation</title>
<updated>2007-01-23T15:52:06+00:00</updated>
<author>
<name>Chen, Kenneth W</name>
<email>kenneth.w.chen@intel.com</email>
</author>
<published>2007-01-23T04:40:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=cda9205da24aeaa8fb086b0fb85cdf39571ecc3f'/>
<id>cda9205da24aeaa8fb086b0fb85cdf39571ecc3f</id>
<content type='text'>
For large size DIO that needs multiple bio, one full page worth of data was
lost at the boundary of bio's maximum sector or segment limits.  After a
bio is full and got submitted.  The outer while (nbytes) { ...  } loop will
allocate a new bio and just march on to index into next page.  It just
forgets about the page that bio_add_page() rejected when previous bio is
full.  Fix it by put the rejected page back to pvec so we pick it up again
for the next bio.

Signed-off-by: Ken Chen &lt;kenneth.w.chen@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.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>
For large size DIO that needs multiple bio, one full page worth of data was
lost at the boundary of bio's maximum sector or segment limits.  After a
bio is full and got submitted.  The outer while (nbytes) { ...  } loop will
allocate a new bio and just march on to index into next page.  It just
forgets about the page that bio_add_page() rejected when previous bio is
full.  Fix it by put the rejected page back to pvec so we pick it up again
for the next bio.

Signed-off-by: Ken Chen &lt;kenneth.w.chen@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] blockdev direct_io: fix signedness bug</title>
<updated>2007-01-23T15:52:05+00:00</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@osdl.org</email>
</author>
<published>2007-01-23T04:40:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=790816dd54e22827f63c8cbb30bd623d3d45e594'/>
<id>790816dd54e22827f63c8cbb30bd623d3d45e594</id>
<content type='text'>
size_t is unsigned.  IO errors aren't getting through.

Cc: "Chen, Kenneth W" &lt;kenneth.w.chen@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.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>
size_t is unsigned.  IO errors aren't getting through.

Cc: "Chen, Kenneth W" &lt;kenneth.w.chen@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] Revert bd_mount_mutex back to a semaphore</title>
<updated>2007-01-12T02:18:21+00:00</updated>
<author>
<name>David Chinner</name>
<email>dgc@sgi.com</email>
</author>
<published>2007-01-11T07:15:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=f73ca1b76c6880b934d3ef566c1592efc80bb759'/>
<id>f73ca1b76c6880b934d3ef566c1592efc80bb759</id>
<content type='text'>
Revert bd_mount_mutex back to a semaphore so that xfs_freeze -f /mnt/newtest;
xfs_freeze -u /mnt/newtest works safely and doesn't produce lockdep warnings.

(XFS unlocks the semaphore from a different task, by design.  The mutex
code warns about this)

Signed-off-by: Dave Chinner &lt;dgc@sgi.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&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>
Revert bd_mount_mutex back to a semaphore so that xfs_freeze -f /mnt/newtest;
xfs_freeze -u /mnt/newtest works safely and doesn't produce lockdep warnings.

(XFS unlocks the semaphore from a different task, by design.  The mutex
code warns about this)

Signed-off-by: Dave Chinner &lt;dgc@sgi.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&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>
<entry>
<title>[PATCH] optimize o_direct on block devices</title>
<updated>2006-12-13T17:05:50+00:00</updated>
<author>
<name>Chen, Kenneth W</name>
<email>kenneth.w.chen@intel.com</email>
</author>
<published>2006-12-13T08:34:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=e61c90188b9956edae1105eef361d8981a352fcd'/>
<id>e61c90188b9956edae1105eef361d8981a352fcd</id>
<content type='text'>
Implement block device specific .direct_IO method instead of going through
generic direct_io_worker for block device.

direct_io_worker() is fairly complex because it needs to handle O_DIRECT on
file system, where it needs to perform block allocation, hole detection,
extents file on write, and tons of other corner cases.  The end result is
that it takes tons of CPU time to submit an I/O.

For block device, the block allocation is much simpler and a tight triple
loop can be written to iterate each iovec and each page within the iovec in
order to construct/prepare bio structure and then subsequently submit it to
the block layer.  This significantly speeds up O_D on block device.

[akpm@osdl.org: small speedup]
Signed-off-by: Ken Chen &lt;kenneth.w.chen@intel.com&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Zach Brown &lt;zach.brown@oracle.com&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>
Implement block device specific .direct_IO method instead of going through
generic direct_io_worker for block device.

direct_io_worker() is fairly complex because it needs to handle O_DIRECT on
file system, where it needs to perform block allocation, hole detection,
extents file on write, and tons of other corner cases.  The end result is
that it takes tons of CPU time to submit an I/O.

For block device, the block allocation is much simpler and a tight triple
loop can be written to iterate each iovec and each page within the iovec in
order to construct/prepare bio structure and then subsequently submit it to
the block layer.  This significantly speeds up O_D on block device.

[akpm@osdl.org: small speedup]
Signed-off-by: Ken Chen &lt;kenneth.w.chen@intel.com&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Zach Brown &lt;zach.brown@oracle.com&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>
<entry>
<title>[PATCH] VFS: change struct file to use struct path</title>
<updated>2006-12-08T16:28:41+00:00</updated>
<author>
<name>Josef "Jeff" Sipek</name>
<email>jsipek@cs.sunysb.edu</email>
</author>
<published>2006-12-08T10:36:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05'/>
<id>0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05</id>
<content type='text'>
This patch changes struct file to use struct path instead of having
independent pointers to struct dentry and struct vfsmount, and converts all
users of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.

Additionally, it adds two #define's to make the transition easier for users of
the f_dentry and f_vfsmnt.

Signed-off-by: Josef "Jeff" Sipek &lt;jsipek@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>
This patch changes struct file to use struct path instead of having
independent pointers to struct dentry and struct vfsmount, and converts all
users of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.

Additionally, it adds two #define's to make the transition easier for users of
the f_dentry and f_vfsmnt.

Signed-off-by: Josef "Jeff" Sipek &lt;jsipek@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>
<entry>
<title>[PATCH] bdev: fix -&gt;bd_part_count leak</title>
<updated>2006-12-08T16:28:39+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2006-12-08T10:36:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=c48f70c3d046f021b1c22438604ef2a583380eca'/>
<id>c48f70c3d046f021b1c22438604ef2a583380eca</id>
<content type='text'>
Don't leak a -&gt;bd_part_count when the partition open fails with -ENXIO.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Acked-by: Neil Brown &lt;neilb@suse.de&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>
Don't leak a -&gt;bd_part_count when the partition open fails with -ENXIO.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Acked-by: Neil Brown &lt;neilb@suse.de&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>
<entry>
<title>[PATCH] lockdep: use mutex_lock_nested for bd_mutex to avoid lockdep warning</title>
<updated>2006-12-08T16:28:39+00:00</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2006-12-08T10:36:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=6796bf54a64df36f96a42ae222423fffe36c58a5'/>
<id>6796bf54a64df36f96a42ae222423fffe36c58a5</id>
<content type='text'>
Now that the nesting in blkdev_{get,put} is simpler, adding mutex_lock_nested
is trivial.

Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Neil Brown &lt;neilb@suse.de&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>
Now that the nesting in blkdev_{get,put} is simpler, adding mutex_lock_nested
is trivial.

Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Neil Brown &lt;neilb@suse.de&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>
