qemu/block
Hitoshi Mitake 498f21405a sheepdog: use per AIOCB dirty indexes for non overlapping requests
In the commit 96b14ff85acf, requests for overlapping areas are
serialized. However, it cannot handle a case of non overlapping
requests. In such a case, min_dirty_data_idx and max_dirty_data_idx
can be overwritten by the requests and invalid inode update can
happen e.g. a case like create(1, 2) and create(3, 4) are issued in
parallel.

This patch lets SheepdogAIOCB have dirty data indexes instead of
BDRVSheepdogState for avoiding the above situation.

This patch also does trivial renaming for better description:
overwrapping -> overlapping

Cc: Teruaki Ishizaki <ishizaki.teruaki@lab.ntt.co.jp>
Cc: Vasiliy Tolstov <v.tolstov@selfip.ru>
Cc: Jeff Cody <jcody@redhat.com>
Signed-off-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Tested-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
Message-id: 1441076590-8015-2-git-send-email-mitake.hitoshi@lab.ntt.co.jp
Signed-off-by: Jeff Cody <jcody@redhat.com>
2015-09-25 10:25:19 -04:00
..
accounting.c block: add accounting for merged requests 2015-02-06 17:24:21 +01:00
archipelago.c block: remove superfluous '\n' around error_report/error_setg 2015-03-10 08:15:33 +03:00
backup.c Backup: don't do copy-on-read in before_write_notifier 2015-09-25 08:37:07 -04:00
blkdebug.c block: Move flag inheritance to bdrv_open_inherit() 2015-06-12 17:04:59 +02:00
blkverify.c block: Move flag inheritance to bdrv_open_inherit() 2015-06-12 17:04:59 +02:00
block-backend.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
bochs.c
cloop.c
commit.c block: Allow specifying driver-specific options to reopen 2015-09-14 16:51:36 +02:00
curl.c block/curl: Don't lose original error when a connection fails. 2015-07-14 21:50:13 -04:00
dmg.c qerror: Move #include out of qerror.h 2015-06-22 18:20:40 +02:00
gluster.c
io.c block: Introduce a new API bdrv_co_no_copy_on_readv() 2015-09-25 08:37:07 -04:00
iscsi.c block/iscsi: validate block size returned from target 2015-09-07 18:14:03 +02:00
linux-aio.c
Makefile.objs block: convert quorum blockdrv to use crypto APIs 2015-07-08 13:11:01 +02:00
mirror.c block: more check for replaced node 2015-09-02 14:56:39 +01:00
nbd-client.c nbd: Set block size to BDRV_SECTOR_SIZE 2015-03-18 12:07:01 +01:00
nbd-client.h nbd: Set block size to BDRV_SECTOR_SIZE 2015-03-18 12:07:01 +01:00
nbd.c nbd: Fix nbd_establish_connection()'s return value 2015-03-18 12:05:38 +01:00
nfs.c block/nfs: cache allocated filesize for read-only files 2015-09-25 08:37:07 -04:00
null.c block/null: Support reopen 2015-04-28 15:36:09 +02:00
parallels.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
qapi.c qerror: Finally unused, clean up 2015-06-22 18:20:40 +02:00
qcow2-cache.c qcow2: Rename BDRVQcowState to BDRVQcow2State 2015-09-14 16:51:36 +02:00
qcow2-cluster.c qcow2: Make size_to_clusters() return uint64_t 2015-09-14 16:51:37 +02:00
qcow2-refcount.c qcow2: Make qcow2_alloc_bytes() more explicit 2015-09-14 16:51:37 +02:00
qcow2-snapshot.c qcow2: Rename BDRVQcowState to BDRVQcow2State 2015-09-14 16:51:36 +02:00
qcow2.c qcow2: Support updating driver-specific options in reopen 2015-09-14 16:51:37 +02:00
qcow2.h qcow2: Make size_to_clusters() return uint64_t 2015-09-14 16:51:37 +02:00
qcow.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
qed-check.c
qed-cluster.c
qed-gencb.c
qed-l2-cache.c
qed-table.c
qed.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
qed.h qed: Really remove unused field QEDAIOCB.finished 2015-02-06 17:24:21 +01:00
quorum.c quorum: validate vote threshold against num_children even if read-pattern is fifo 2015-09-04 21:00:32 +02:00
raw_bsd.c block: Add driver methods to probe blocksizes and geometry 2015-03-10 14:02:22 +01:00
raw-aio.h
raw-posix.c block/raw-posix: Use raw_normalize_devicepath() 2015-09-04 20:59:48 +02:00
raw-win32.c qerror: Move #include out of qerror.h 2015-06-22 18:20:40 +02:00
rbd.c rbd: fix ceph settings precedence 2015-07-14 17:15:23 +02:00
sheepdog.c sheepdog: use per AIOCB dirty indexes for non overlapping requests 2015-09-25 10:25:19 -04:00
snapshot.c block: Use bdrv_drain to replace uncessary bdrv_drain_all 2015-07-07 14:27:14 +01:00
ssh.c block/ssh: Avoid segfault if inet_connect doesn't set errno. 2015-07-28 00:19:05 -04:00
stream.c Include qapi/qmp/qerror.h exactly where needed 2015-06-22 18:20:41 +02:00
throttle-groups.c throttle: Check current timers before updating any_timer_armed[] 2015-06-23 15:06:16 +01:00
vdi.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
vhdx-endian.c
vhdx-log.c qerror: Move #include out of qerror.h 2015-06-22 18:20:40 +02:00
vhdx.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
vhdx.h
vmdk.c vmdk: Fix next_cluster_sector for compressed write 2015-09-14 16:51:37 +02:00
vpc.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
vvfat.c block: Drop drv parameter from bdrv_open() 2015-09-14 16:51:36 +02:00
win32-aio.c
write-threshold.c block: Fix block-set-write-threshold not to use funky error class 2015-03-16 17:07:25 +01:00