<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/fs/super.c, branch v2.6.29</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>vfs: add missing unlock in sget()</title>
<updated>2009-03-12T23:20:23+00:00</updated>
<author>
<name>Li Zefan</name>
<email>lizf@cn.fujitsu.com</email>
</author>
<published>2009-03-12T21:31:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a3cfbb53b1764a3d1f58ddc032737ab9edaa7d41'/>
<id>a3cfbb53b1764a3d1f58ddc032737ab9edaa7d41</id>
<content type='text'>
In sget(), destroy_super(s) is called with s-&gt;s_umount held, which makes
lockdep unhappy.

Signed-off-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Al Viro &lt;viro@ZenIV.linux.org.uk&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Paul Menage &lt;menage@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>
In sget(), destroy_super(s) is called with s-&gt;s_umount held, which makes
lockdep unhappy.

Signed-off-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Al Viro &lt;viro@ZenIV.linux.org.uk&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Paul Menage &lt;menage@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>fs/super.c: add lockdep annotation to s_umount</title>
<updated>2009-02-18T23:37:55+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>peterz@infradead.org</email>
</author>
<published>2009-02-18T22:48:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ada723dcd681e2dffd7d73345cc8fda0eb0df9bd'/>
<id>ada723dcd681e2dffd7d73345cc8fda0eb0df9bd</id>
<content type='text'>
Li Zefan said:

Thread 1:
  for ((; ;))
  {
      mount -t cpuset xxx /mnt &gt; /dev/null 2&gt;&amp;1
      cat /mnt/cpus &gt; /dev/null 2&gt;&amp;1
      umount /mnt &gt; /dev/null 2&gt;&amp;1
  }

Thread 2:
  for ((; ;))
  {
      mount -t cpuset xxx /mnt &gt; /dev/null 2&gt;&amp;1
      umount /mnt &gt; /dev/null 2&gt;&amp;1
  }

(Note: It is irrelevant which cgroup subsys is used.)

After a while a lockdep warning showed up:

=============================================
[ INFO: possible recursive locking detected ]
2.6.28 #479
---------------------------------------------
mount/13554 is trying to acquire lock:
 (&amp;type-&gt;s_umount_key#19){--..}, at: [&lt;c049d888&gt;] sget+0x5e/0x321

but task is already holding lock:
 (&amp;type-&gt;s_umount_key#19){--..}, at: [&lt;c049da0c&gt;] sget+0x1e2/0x321

other info that might help us debug this:
1 lock held by mount/13554:
 #0:  (&amp;type-&gt;s_umount_key#19){--..}, at: [&lt;c049da0c&gt;] sget+0x1e2/0x321

stack backtrace:
Pid: 13554, comm: mount Not tainted 2.6.28-mc #479
Call Trace:
 [&lt;c044ad2e&gt;] validate_chain+0x4c6/0xbbd
 [&lt;c044ba9b&gt;] __lock_acquire+0x676/0x700
 [&lt;c044bb82&gt;] lock_acquire+0x5d/0x7a
 [&lt;c049d888&gt;] ? sget+0x5e/0x321
 [&lt;c061b9b8&gt;] down_write+0x34/0x50
 [&lt;c049d888&gt;] ? sget+0x5e/0x321
 [&lt;c049d888&gt;] sget+0x5e/0x321
 [&lt;c045a2e7&gt;] ? cgroup_set_super+0x0/0x3e
 [&lt;c045959f&gt;] ? cgroup_test_super+0x0/0x2f
 [&lt;c045bcea&gt;] cgroup_get_sb+0x98/0x2e7
 [&lt;c045cfb6&gt;] cpuset_get_sb+0x4a/0x5f
 [&lt;c049dfa4&gt;] vfs_kern_mount+0x40/0x7b
 [&lt;c049e02d&gt;] do_kern_mount+0x37/0xbf
 [&lt;c04af4a0&gt;] do_mount+0x5c3/0x61a
 [&lt;c04addd2&gt;] ? copy_mount_options+0x2c/0x111
 [&lt;c04af560&gt;] sys_mount+0x69/0xa0
 [&lt;c0403251&gt;] sysenter_do_call+0x12/0x31

The cause is after alloc_super() and then retry, an old entry in list
fs_supers is found, so grab_super(old) is called, but both functions hold
s_umount lock:

struct super_block *sget(...)
{
	...
retry:
	spin_lock(&amp;sb_lock);
	if (test) {
		list_for_each_entry(old, &amp;type-&gt;fs_supers, s_instances) {
			if (!test(old, data))
				continue;
			if (!grab_super(old))  &lt;--- 2nd: down_write(&amp;old-&gt;s_umount);
				goto retry;
			if (s)
				destroy_super(s);
			return old;
		}
	}
	if (!s) {
		spin_unlock(&amp;sb_lock);
		s = alloc_super(type);   &lt;--- 1th: down_write(&amp;s-&gt;s_umount)
		if (!s)
			return ERR_PTR(-ENOMEM);
		goto retry;
	}
	...
}

It seems like a false positive, and seems like VFS but not cgroup needs to
be fixed.

Peter said:

We can simply put the new s_umount instance in a but lockdep doesn't
particularly cares about subclass order.

If there's any issue with the callers of sget() assuming the s_umount lock
being of sublcass 0, then there is another annotation we can use to fix
that, but lets not bother with that if this is sufficient.

Addresses http://bugzilla.kernel.org/show_bug.cgi?id=12673

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Tested-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Reported-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Paul Menage &lt;menage@google.com&gt;
Cc: Arjan van de Ven &lt;arjan@infradead.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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Li Zefan said:

Thread 1:
  for ((; ;))
  {
      mount -t cpuset xxx /mnt &gt; /dev/null 2&gt;&amp;1
      cat /mnt/cpus &gt; /dev/null 2&gt;&amp;1
      umount /mnt &gt; /dev/null 2&gt;&amp;1
  }

Thread 2:
  for ((; ;))
  {
      mount -t cpuset xxx /mnt &gt; /dev/null 2&gt;&amp;1
      umount /mnt &gt; /dev/null 2&gt;&amp;1
  }

(Note: It is irrelevant which cgroup subsys is used.)

After a while a lockdep warning showed up:

=============================================
[ INFO: possible recursive locking detected ]
2.6.28 #479
---------------------------------------------
mount/13554 is trying to acquire lock:
 (&amp;type-&gt;s_umount_key#19){--..}, at: [&lt;c049d888&gt;] sget+0x5e/0x321

but task is already holding lock:
 (&amp;type-&gt;s_umount_key#19){--..}, at: [&lt;c049da0c&gt;] sget+0x1e2/0x321

other info that might help us debug this:
1 lock held by mount/13554:
 #0:  (&amp;type-&gt;s_umount_key#19){--..}, at: [&lt;c049da0c&gt;] sget+0x1e2/0x321

stack backtrace:
Pid: 13554, comm: mount Not tainted 2.6.28-mc #479
Call Trace:
 [&lt;c044ad2e&gt;] validate_chain+0x4c6/0xbbd
 [&lt;c044ba9b&gt;] __lock_acquire+0x676/0x700
 [&lt;c044bb82&gt;] lock_acquire+0x5d/0x7a
 [&lt;c049d888&gt;] ? sget+0x5e/0x321
 [&lt;c061b9b8&gt;] down_write+0x34/0x50
 [&lt;c049d888&gt;] ? sget+0x5e/0x321
 [&lt;c049d888&gt;] sget+0x5e/0x321
 [&lt;c045a2e7&gt;] ? cgroup_set_super+0x0/0x3e
 [&lt;c045959f&gt;] ? cgroup_test_super+0x0/0x2f
 [&lt;c045bcea&gt;] cgroup_get_sb+0x98/0x2e7
 [&lt;c045cfb6&gt;] cpuset_get_sb+0x4a/0x5f
 [&lt;c049dfa4&gt;] vfs_kern_mount+0x40/0x7b
 [&lt;c049e02d&gt;] do_kern_mount+0x37/0xbf
 [&lt;c04af4a0&gt;] do_mount+0x5c3/0x61a
 [&lt;c04addd2&gt;] ? copy_mount_options+0x2c/0x111
 [&lt;c04af560&gt;] sys_mount+0x69/0xa0
 [&lt;c0403251&gt;] sysenter_do_call+0x12/0x31

The cause is after alloc_super() and then retry, an old entry in list
fs_supers is found, so grab_super(old) is called, but both functions hold
s_umount lock:

struct super_block *sget(...)
{
	...
retry:
	spin_lock(&amp;sb_lock);
	if (test) {
		list_for_each_entry(old, &amp;type-&gt;fs_supers, s_instances) {
			if (!test(old, data))
				continue;
			if (!grab_super(old))  &lt;--- 2nd: down_write(&amp;old-&gt;s_umount);
				goto retry;
			if (s)
				destroy_super(s);
			return old;
		}
	}
	if (!s) {
		spin_unlock(&amp;sb_lock);
		s = alloc_super(type);   &lt;--- 1th: down_write(&amp;s-&gt;s_umount)
		if (!s)
			return ERR_PTR(-ENOMEM);
		goto retry;
	}
	...
}

It seems like a false positive, and seems like VFS but not cgroup needs to
be fixed.

Peter said:

We can simply put the new s_umount instance in a but lockdep doesn't
particularly cares about subclass order.

If there's any issue with the callers of sget() assuming the s_umount lock
being of sublcass 0, then there is another annotation we can use to fix
that, but lets not bother with that if this is sufficient.

Addresses http://bugzilla.kernel.org/show_bug.cgi?id=12673

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Tested-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Reported-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Paul Menage &lt;menage@google.com&gt;
Cc: Arjan van de Ven &lt;arjan@infradead.org&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>async: Rename _special -&gt; _domain for clarity.</title>
<updated>2009-02-08T17:56:11+00:00</updated>
<author>
<name>Cornelia Huck</name>
<email>cornelia.huck@de.ibm.com</email>
</author>
<published>2009-01-20T14:31:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=766ccb9ed406c230d13c145def08ebea1b932982'/>
<id>766ccb9ed406c230d13c145def08ebea1b932982</id>
<content type='text'>
Rename the async_*_special() functions to async_*_domain(), which
describes the purpose of these functions much better.
[Broke up long lines to silence checkpatch]

Signed-off-by: Cornelia Huck &lt;cornelia.huck@de.ibm.com&gt;
Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename the async_*_special() functions to async_*_domain(), which
describes the purpose of these functions much better.
[Broke up long lines to silence checkpatch]

Signed-off-by: Cornelia Huck &lt;cornelia.huck@de.ibm.com&gt;
Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[CVE-2009-0029] System call wrappers part 11</title>
<updated>2009-01-14T13:15:23+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-01-14T13:14:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=257ac264d69017270fbc3cf5536953525db4076c'/>
<id>257ac264d69017270fbc3cf5536953525db4076c</id>
<content type='text'>
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4</title>
<updated>2009-01-09T01:14:59+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-01-09T01:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f'/>
<id>2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f</id>
<content type='text'>
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (57 commits)
  jbd2: Fix oops in jbd2_journal_init_inode() on corrupted fs
  ext4: Remove "extents" mount option
  block: Add Kconfig help which notes that ext4 needs CONFIG_LBD
  ext4: Make printk's consistently prefixed with "EXT4-fs: "
  ext4: Add sanity checks for the superblock before mounting the filesystem
  ext4: Add mount option to set kjournald's I/O priority
  jbd2: Submit writes to the journal using WRITE_SYNC
  jbd2: Add pid and journal device name to the "kjournald2 starting" message
  ext4: Add markers for better debuggability
  ext4: Remove code to create the journal inode
  ext4: provide function to release metadata pages under memory pressure
  ext3: provide function to release metadata pages under memory pressure
  add releasepage hooks to block devices which can be used by file systems
  ext4: Fix s_dirty_blocks_counter if block allocation failed with nodelalloc
  ext4: Init the complete page while building buddy cache
  ext4: Don't allow new groups to be added during block allocation
  ext4: mark the blocks/inode bitmap beyond end of group as used
  ext4: Use new buffer_head flag to check uninit group bitmaps initialization
  ext4: Fix the race between read_inode_bitmap() and ext4_new_inode()
  ext4: code cleanup
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (57 commits)
  jbd2: Fix oops in jbd2_journal_init_inode() on corrupted fs
  ext4: Remove "extents" mount option
  block: Add Kconfig help which notes that ext4 needs CONFIG_LBD
  ext4: Make printk's consistently prefixed with "EXT4-fs: "
  ext4: Add sanity checks for the superblock before mounting the filesystem
  ext4: Add mount option to set kjournald's I/O priority
  jbd2: Submit writes to the journal using WRITE_SYNC
  jbd2: Add pid and journal device name to the "kjournald2 starting" message
  ext4: Add markers for better debuggability
  ext4: Remove code to create the journal inode
  ext4: provide function to release metadata pages under memory pressure
  ext3: provide function to release metadata pages under memory pressure
  add releasepage hooks to block devices which can be used by file systems
  ext4: Fix s_dirty_blocks_counter if block allocation failed with nodelalloc
  ext4: Init the complete page while building buddy cache
  ext4: Don't allow new groups to be added during block allocation
  ext4: mark the blocks/inode bitmap beyond end of group as used
  ext4: Use new buffer_head flag to check uninit group bitmaps initialization
  ext4: Fix the race between read_inode_bitmap() and ext4_new_inode()
  ext4: code cleanup
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>async: Don't call async_synchronize_full_special() while holding sb_lock</title>
<updated>2009-01-08T16:15:39+00:00</updated>
<author>
<name>Dave Kleikamp</name>
<email>shaggy@linux.vnet.ibm.com</email>
</author>
<published>2009-01-08T15:46:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=96777fe7b042e5a5d0fe5fb861fcd6cd80ef9634'/>
<id>96777fe7b042e5a5d0fe5fb861fcd6cd80ef9634</id>
<content type='text'>
sync_filesystems() shouldn't be calling async_synchronize_full_special
while holding a spinlock.  The second while loop in that function is the
right place for this anyway.

Signed-off-by: Dave Kleikamp &lt;shaggy@linux.vnet.ibm.com&gt;
Cc: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Reported-by: Grissiom &lt;chaos.proton@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>
sync_filesystems() shouldn't be calling async_synchronize_full_special
while holding a spinlock.  The second while loop in that function is the
right place for this anyway.

Signed-off-by: Dave Kleikamp &lt;shaggy@linux.vnet.ibm.com&gt;
Cc: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Reported-by: Grissiom &lt;chaos.proton@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>async: make the final inode deletion an asynchronous event</title>
<updated>2009-01-07T16:47:24+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2009-01-06T15:20:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=efaee192063a54749c56b7383803e16fe553630e'/>
<id>efaee192063a54749c56b7383803e16fe553630e</id>
<content type='text'>
this makes "rm -rf" on a (names cached) kernel tree go from
11.6 to 8.6 seconds on an ext3 filesystem

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this makes "rm -rf" on a (names cached) kernel tree go from
11.6 to 8.6 seconds on an ext3 filesystem

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>add releasepage hooks to block devices which can be used by file systems</title>
<updated>2009-01-03T14:47:09+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2009-01-03T14:47:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=87d8fe1ee6b8d2f95076142d58c440dba4e7bdc2'/>
<id>87d8fe1ee6b8d2f95076142d58c440dba4e7bdc2</id>
<content type='text'>
Implement blkdev_releasepage() to release the buffer_heads and pages
after we release private data belonging to a mounted filesystem.

Cc: Toshiyuki Okajima &lt;toshi.okajima@jp.fujitsu.com&gt;
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement blkdev_releasepage() to release the buffer_heads and pages
after we release private data belonging to a mounted filesystem.

Cc: Toshiyuki Okajima &lt;toshi.okajima@jp.fujitsu.com&gt;
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>security: pass mount flags to security_sb_kern_mount()</title>
<updated>2008-12-19T22:02:39+00:00</updated>
<author>
<name>James Morris</name>
<email>jmorris@namei.org</email>
</author>
<published>2008-12-18T23:44:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=12204e24b1330428c3062faee10a0d80b8a5cb61'/>
<id>12204e24b1330428c3062faee10a0d80b8a5cb61</id>
<content type='text'>
Pass mount flags to security_sb_kern_mount(), so security modules
can determine if a mount operation is being performed by the kernel.

Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
Acked-by: Stephen Smalley &lt;sds@tycho.nsa.gov&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pass mount flags to security_sb_kern_mount(), so security modules
can determine if a mount operation is being performed by the kernel.

Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
Acked-by: Stephen Smalley &lt;sds@tycho.nsa.gov&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev</title>
<updated>2008-10-23T17:23:07+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-10-23T17:23:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=22484856402bfa1ff3defe47f6029ab0418240d9'/>
<id>22484856402bfa1ff3defe47f6029ab0418240d9</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev: (66 commits)
  [PATCH] kill the rest of struct file propagation in block ioctls
  [PATCH] get rid of struct file use in blkdev_ioctl() BLKBSZSET
  [PATCH] get rid of blkdev_locked_ioctl()
  [PATCH] get rid of blkdev_driver_ioctl()
  [PATCH] sanitize blkdev_get() and friends
  [PATCH] remember mode of reiserfs journal
  [PATCH] propagate mode through swsusp_close()
  [PATCH] propagate mode through open_bdev_excl/close_bdev_excl
  [PATCH] pass fmode_t to blkdev_put()
  [PATCH] kill the unused bsize on the send side of /dev/loop
  [PATCH] trim file propagation in block/compat_ioctl.c
  [PATCH] end of methods switch: remove the old ones
  [PATCH] switch sr
  [PATCH] switch sd
  [PATCH] switch ide-scsi
  [PATCH] switch tape_block
  [PATCH] switch dcssblk
  [PATCH] switch dasd
  [PATCH] switch mtd_blkdevs
  [PATCH] switch mmc
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev: (66 commits)
  [PATCH] kill the rest of struct file propagation in block ioctls
  [PATCH] get rid of struct file use in blkdev_ioctl() BLKBSZSET
  [PATCH] get rid of blkdev_locked_ioctl()
  [PATCH] get rid of blkdev_driver_ioctl()
  [PATCH] sanitize blkdev_get() and friends
  [PATCH] remember mode of reiserfs journal
  [PATCH] propagate mode through swsusp_close()
  [PATCH] propagate mode through open_bdev_excl/close_bdev_excl
  [PATCH] pass fmode_t to blkdev_put()
  [PATCH] kill the unused bsize on the send side of /dev/loop
  [PATCH] trim file propagation in block/compat_ioctl.c
  [PATCH] end of methods switch: remove the old ones
  [PATCH] switch sr
  [PATCH] switch sd
  [PATCH] switch ide-scsi
  [PATCH] switch tape_block
  [PATCH] switch dcssblk
  [PATCH] switch dasd
  [PATCH] switch mtd_blkdevs
  [PATCH] switch mmc
  ...
</pre>
</div>
</content>
</entry>
</feed>
