git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git]
/
drivers
/
xen
/
blkfront
/
blkfront.c
diff --git
a/drivers/xen/blkfront/blkfront.c
b/drivers/xen/blkfront/blkfront.c
index
2b16200
..
a911c76
100644
(file)
--- a/
drivers/xen/blkfront/blkfront.c
+++ b/
drivers/xen/blkfront/blkfront.c
@@
-46,7
+46,6
@@
#include <xen/interface/grant_table.h>
#include <xen/gnttab.h>
#include <asm/hypervisor.h>
#include <xen/interface/grant_table.h>
#include <xen/gnttab.h>
#include <asm/hypervisor.h>
-#include <asm/maddr.h>
#define BLKIF_STATE_DISCONNECTED 0
#define BLKIF_STATE_CONNECTED 1
#define BLKIF_STATE_DISCONNECTED 0
#define BLKIF_STATE_CONNECTED 1
@@
-256,10
+255,10
@@
static void backend_changed(struct xenbus_device *dev,
DPRINTK("blkfront:backend_changed.\n");
switch (backend_state) {
DPRINTK("blkfront:backend_changed.\n");
switch (backend_state) {
+ case XenbusStateUnknown:
case XenbusStateInitialising:
case XenbusStateInitWait:
case XenbusStateInitialised:
case XenbusStateInitialising:
case XenbusStateInitWait:
case XenbusStateInitialised:
- case XenbusStateUnknown:
case XenbusStateClosed:
break;
case XenbusStateClosed:
break;
@@
-355,14
+354,12
@@
static void blkfront_closing(struct xenbus_device *dev)
blk_stop_queue(info->rq);
/* No more gnttab callback work. */
gnttab_cancel_free_callback(&info->callback);
blk_stop_queue(info->rq);
/* No more gnttab callback work. */
gnttab_cancel_free_callback(&info->callback);
- spin_unlock_irqrestore(&blkif_io_lock, flags);
-
- /* Flush gnttab callback work. Must be done with no locks held. */
flush_scheduled_work();
flush_scheduled_work();
+ spin_unlock_irqrestore(&blkif_io_lock, flags);
xlvbd_del(info);
xlvbd_del(info);
- xenbus_
frontend_closed(dev
);
+ xenbus_
switch_state(dev, XenbusStateClosed
);
}
}
@@
-716,10
+713,8
@@
static void blkif_free(struct blkfront_info *info, int suspend)
blk_stop_queue(info->rq);
/* No more gnttab callback work. */
gnttab_cancel_free_callback(&info->callback);
blk_stop_queue(info->rq);
/* No more gnttab callback work. */
gnttab_cancel_free_callback(&info->callback);
- spin_unlock_irq(&blkif_io_lock);
-
- /* Flush gnttab callback work. Must be done with no locks held. */
flush_scheduled_work();
flush_scheduled_work();
+ spin_unlock_irq(&blkif_io_lock);
/* Free resources associated with old device channel. */
if (info->ring_ref != GRANT_INVALID_REF) {
/* Free resources associated with old device channel. */
if (info->ring_ref != GRANT_INVALID_REF) {