linux/drivers/block
Alex Elder 8eb8756530 rbd: don't drop watch requests on completion
When we register an osd request to linger, it means that request
will stay around (under control of the osd client) until we've
unregistered it.  We do that for an rbd image's header object, and
we keep a pointer to the object request associated with it.

Keep a reference to the watch object request for as long as it is
registered to linger.  Drop it again after we've removed the linger
registration.

This resolves:
    http://tracker.ceph.com/issues/3937

(Note: this originally came about because the osd client was
issuing a callback more than once.  But that behavior will be
changing soon, documented in tracker issue 3967.)

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-02-13 18:29:10 -08:00
..
aoe aoe: fix use after free in aoedev_by_aoeaddr() 2012-12-17 17:15:26 -08:00
drbd drbd: update Kconfig to match current dependencies 2012-12-06 13:08:29 +01:00
mtip32xx mtip32xx: Fix padding issue 2012-11-23 14:32:55 +01:00
paride
xen-blkback Merge branch 'for-3.8/drivers' of git://git.kernel.dk/linux-block 2012-12-17 13:39:11 -08:00
amiflop.c
ataflop.c
brd.c block: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:16 +08:00
cciss_cmd.h
cciss_scsi.c cciss: fix handling of protocol error 2012-09-18 11:57:08 +02:00
cciss_scsi.h
cciss.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
cciss.h
cpqarray.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
cpqarray.h
cryptoloop.c
DAC960.c dac960: Remove unused variables from DAC960_CreateProcEntries() 2012-05-11 16:42:14 +02:00
DAC960.h
floppy.c floppy: destroy floppy workqueue before cleaning up the queue 2012-11-23 14:32:54 +01:00
hd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ida_cmd.h
ida_ioctl.h
Kconfig cciss: select CONFIG_CHECK_SIGNATURE 2012-10-30 08:37:00 +01:00
loop.c Merge branch 'for-3.8/drivers' of git://git.kernel.dk/linux-block 2012-12-17 13:39:11 -08:00
Makefile block: remove the deprecated ub driver 2012-09-05 17:18:53 -07:00
mg_disk.c mg_disk: Use struct dev_pm_ops for power management 2012-07-06 19:07:00 +02:00
nbd.c nbd: handle discard requests 2012-10-06 03:05:24 +09:00
nvme.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
osdblk.c block: Add bio_clone_bioset(), bio_clone_kmalloc() 2012-09-09 10:35:39 +02:00
pktcdvd.c pktcdvd: Switch to bio_kmalloc() 2012-09-09 10:35:39 +02:00
ps3disk.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
ps3vram.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
rbd_types.h rbd: get rid of RBD_MAX_SEG_NAME_LEN 2012-12-17 08:37:29 -06:00
rbd.c rbd: don't drop watch requests on completion 2013-02-13 18:29:10 -08:00
smart1,2.h
sunvdc.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
swim3.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
swim_asm.S
swim.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
sx8.c block, sx8: fix pointer math issue getting fw version 2012-03-03 19:44:39 +01:00
umem.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
umem.h
virtio_blk.c Various minor fixes, but a slightly more complex one to fix the per-cpu overload 2013-01-20 16:44:28 -08:00
xd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
xd.h
xen-blkfront.c xen-blkfront: free allocated page 2012-11-26 14:58:11 -05:00
xsysace.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
z2ram.c