<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/block, branch v3.1</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/block?h=v3.1</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/block?h=v3.1'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-09-21T08:22:11Z</updated>
<entry>
<title>floppy: use del_timer_sync() in init cleanup</title>
<updated>2011-09-21T08:22:11Z</updated>
<author>
<name>Carsten Emde</name>
<email>C.Emde@osadl.org</email>
</author>
<published>2011-09-21T08:22:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6c4867f6469964e34c5f4ee229a2a7f71a34c7ff'/>
<id>urn:sha1:6c4867f6469964e34c5f4ee229a2a7f71a34c7ff</id>
<content type='text'>
When no floppy is found the module code can be released while a timer
function is pending or about to be executed.

CPU0                                  CPU1
				      floppy_init()
timer_softirq()
   spin_lock_irq(&amp;base-&gt;lock);
   detach_timer();
   spin_unlock_irq(&amp;base-&gt;lock);
   -&gt; Interrupt
					del_timer();
				        return -ENODEV;
                                      module_cleanup();
   &lt;- EOI
   call_timer_fn();
   OOPS

Use del_timer_sync() to prevent this.

Signed-off-by: Carsten Emde &lt;C.Emde@osadl.org&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'stable/for-jens' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus</title>
<updated>2011-08-23T13:09:13Z</updated>
<author>
<name>Jens Axboe</name>
<email>jaxboe@fusionio.com</email>
</author>
<published>2011-08-23T13:09:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=89c63a8ef36a621cb6790c1a56c737e6805ad8f4'/>
<id>urn:sha1:89c63a8ef36a621cb6790c1a56c737e6805ad8f4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>xen-blkback: fixed indentation and comments</title>
<updated>2011-08-22T15:35:36Z</updated>
<author>
<name>Joe Jin</name>
<email>joe.jin@oracle.com</email>
</author>
<published>2011-08-15T04:57:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1bc05b0ae6448b20d46076899e0cc12ad999e50e'/>
<id>urn:sha1:1bc05b0ae6448b20d46076899e0cc12ad999e50e</id>
<content type='text'>
This patch fixes belows:

1. Fix code style issue.
2. Fix incorrect functions name in comments.

Signed-off-by: Joe Jin &lt;joe.jin@oracle.com&gt;
Cc: Jens Axboe &lt;jaxboe@fusionio.com&gt;
Cc: Ian Campbell &lt;Ian.Campbell@eu.citrix.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
</content>
</entry>
<entry>
<title>xen-blkback: Don't disconnect backend until state switched to XenbusStateClosed.</title>
<updated>2011-08-22T15:35:35Z</updated>
<author>
<name>Joe Jin</name>
<email>joe.jin@oracle.com</email>
</author>
<published>2011-08-15T04:51:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6f5986bce558e64fe867bff600a2127a3cb0c006'/>
<id>urn:sha1:6f5986bce558e64fe867bff600a2127a3cb0c006</id>
<content type='text'>
When do block-attach/block-detach test with below steps, umount hangs
in the guest. Furthermore shutdown ends up being stuck when umounting file-systems.

1. start guest.
2. attach new block device by xm block-attach in Dom0.
3. mount new disk in guest.
4. execute xm block-detach to detach the block device in dom0 until timeout
5. Any request to the disk will hung.

Root cause:
This issue is caused when setting backend device's state to
'XenbusStateClosing', which sends to the frontend the XenbusStateClosing
notification. When frontend receives the notification it tries to release
the disk in blkfront_closing(), but at that moment the disk is still in use
by guest, so frontend refuses to close. Specifically it sets the disk state to
XenbusStateClosing and sends the notification to backend - when backend receives the
event, it disconnects the vbd from real device, and sets the vbd device state to
XenbusStateClosing. The backend disconnects the real device/file, and any IO
requests to the disk in guest will end up in ether, leaving disk DEAD and set to
XenbusStateClosing. When the guest wants to disconnect the disk, umount will
hang on blkif_release()-&gt;xlvbd_release_gendisk() as it is unable to send any IO
to the disk, which prevents clean system shutdown.

Solution:
Don't disconnect backend until frontend state switched to XenbusStateClosed.

Signed-off-by: Joe Jin &lt;joe.jin@oracle.com&gt;
Cc: Daniel Stodden &lt;daniel.stodden@citrix.com&gt;
Cc: Jens Axboe &lt;jaxboe@fusionio.com&gt;
Cc: Annie Li &lt;annie.li@oracle.com&gt;
Cc: Ian Campbell &lt;Ian.Campbell@eu.citrix.com&gt;
[v1: Modified description a bit]
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'stable/for-jens' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus</title>
<updated>2011-08-09T18:43:26Z</updated>
<author>
<name>Jens Axboe</name>
<email>jaxboe@fusionio.com</email>
</author>
<published>2011-08-09T18:43:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=40bb96ade4ef1549f387625589175def31dc9023'/>
<id>urn:sha1:40bb96ade4ef1549f387625589175def31dc9023</id>
<content type='text'>
</content>
</entry>
<entry>
<title>xen/blkback: Make description more obvious.</title>
<updated>2011-08-09T15:12:14Z</updated>
<author>
<name>Konrad Rzeszutek Wilk</name>
<email>konrad.wilk@oracle.com</email>
</author>
<published>2011-08-03T15:12:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ea5e116162b7e0cf83a2b8a273440514404604de'/>
<id>urn:sha1:ea5e116162b7e0cf83a2b8a273440514404604de</id>
<content type='text'>
With the frontend having Xen but the backend not, it just looks odd:

  &lt;*&gt;   Xen virtual block device support
  &lt;*&gt;   Block-device backend driver

Fix it to have the 'Xen' in front of it.

Reported-by: Sander Eikelenboom &lt;linux@eikelenboom.it&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
</content>
</entry>
<entry>
<title>block: swim3: fix unterminated of_device_id table</title>
<updated>2011-08-03T13:02:55Z</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2011-08-03T13:02:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f41c53a569c4cf0556893ec9cfcf697d069799e1'/>
<id>urn:sha1:f41c53a569c4cf0556893ec9cfcf697d069799e1</id>
<content type='text'>
of_device_id structures need a NULL terminating entry, add it.

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>drivers/block/drbd/drbd_nl.c: use bitmap_parse instead of __bitmap_parse</title>
<updated>2011-08-02T10:43:49Z</updated>
<author>
<name>H Hartley Sweeten</name>
<email>hartleys@visionengravers.com</email>
</author>
<published>2011-08-02T10:43:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ddad9ef5826efdfbbdb67b13b46f30e43e46ec3e'/>
<id>urn:sha1:ddad9ef5826efdfbbdb67b13b46f30e43e46ec3e</id>
<content type='text'>
The buffer 'sc.cpu_mask' is a kernel buffer.  If bitmap_parse is used
instead of __bitmap_parse the extra parameter that indicates a kernel
buffer is not needed.

Signed-off-by: H Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Cc: Lars Ellenberg &lt;drbd-dev@lists.linbit.com&gt;
Cc: Philipp Reisner &lt;philipp.reisner@linbit.com&gt;
Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other</title>
<updated>2011-07-31T20:21:35Z</updated>
<author>
<name>Kay Sievers</name>
<email>kay.sievers@vrfy.org</email>
</author>
<published>2011-07-31T20:21:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=05eb0f252b04aa94ace0794f73d56c6a02351d80'/>
<id>urn:sha1:05eb0f252b04aa94ace0794f73d56c6a02351d80</id>
<content type='text'>
LOOP_CLR_FD takes lo-&gt;lo_ctl_mutex and tries to remove the loop sysfs
files. Sysfs calls show() and waits for lo-&gt;lo_ctl_mutex. LOOP_CLR_FD
waits for show() to finish to remove the sysfs file.

  cat /sys/class/block/loop0/loop/backing_file
    mutex_lock_nested+0x176/0x350
    ? loop_attr_do_show_backing_file+0x2f/0xd0 [loop]
    ? loop_attr_do_show_backing_file+0x2f/0xd0 [loop]
    loop_attr_do_show_backing_file+0x2f/0xd0 [loop]
    dev_attr_show+0x1b/0x60
    ? sysfs_read_file+0x86/0x1a0
    ? __get_free_pages+0x12/0x50
    sysfs_read_file+0xaf/0x1a0

  ioctl(LOOP_CLR_FD):
    wait_for_common+0x12c/0x180
    ? try_to_wake_up+0x2a0/0x2a0
    wait_for_completion+0x18/0x20
    sysfs_deactivate+0x178/0x180
    ? sysfs_addrm_finish+0x43/0x70
    ? sysfs_addrm_start+0x1d/0x20
    sysfs_addrm_finish+0x43/0x70
    sysfs_hash_and_remove+0x85/0xa0
    sysfs_remove_group+0x59/0x100
    loop_clr_fd+0x1dc/0x3f0 [loop]
    lo_ioctl+0x223/0x7a0 [loop]

Instead of taking the lo_ctl_mutex from sysfs code, take the inner
lo-&gt;lo_lock, to protect the access to the backing_file data.

Thanks to Tejun for help debugging and finding a solution.

Cc: Milan Broz &lt;mbroz@redhat.com&gt;
Cc: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Cc: stable@kernel.org
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>loop: add BLK_DEV_LOOP_MIN_COUNT=%i to allow distros 0 pre-allocated loop devices</title>
<updated>2011-07-31T20:08:04Z</updated>
<author>
<name>Kay Sievers</name>
<email>kay.sievers@vrfy.org</email>
</author>
<published>2011-07-31T20:08:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d134b00b9acca3fb054d7c88a5f5d562ecbb42d1'/>
<id>urn:sha1:d134b00b9acca3fb054d7c88a5f5d562ecbb42d1</id>
<content type='text'>
Instead of unconditionally creating a fixed number of dead loop
devices which need to be investigated by storage handling services,
even when they are never used, we allow distros start with 0
loop devices and have losetup(8) and similar switch to the dynamic
/dev/loop-control interface instead of searching /dev/loop%i for free
devices.

Signed-off-by: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
</feed>
