[sheepdog] [PATCH v3 0/7] revive VDI locking mecahnism

Hitoshi Mitake mitake.hitoshi at lab.ntt.co.jp
Thu Jul 31 04:51:21 CEST 2014


This patch revives VDI locking mechanism. When two or more clients
(QEMU and tgt) try to open one VDI, sheep returns an error to the
later one.

Example:
$ sudo qemu-system-x86_64 -hda sheepdog:debian
qemu-system-x86_64: -hda sheepdog:debian: could not open disk image sheepdog:debian: cannot get vdi info, VDI isn't locked, \
debian 0

v3:
 - renaming functions

v2:
 - Changes for QEMU side are needless
 - Manual unlocking is required for keeping data integrity
 -- New dog subcommands are provided for this purpose


Hitoshi Mitake (7):
  sheep: change a prototype of process_main() for obtaining sender
    information
  sheep: revive lock operation
  dog: use GET_VDI_INFO unconditionally in dog
  sheep: snapshot and collect vdi state during joining to cluster
  sheep: a new helper function for formatting struct node_id
  dog: add a new subcommand "dog vdi lock list" for listing vdi locking
    status
  dog: add a new subcommand "dog vdi lock force-unlock" for unlocking
    VDI forcibly

 dog/treeview.c           |  41 ++++++++
 dog/treeview.h           |   2 +
 dog/vdi.c                |  96 +++++++++++++++++-
 include/internal_proto.h |  23 +++++
 include/sheep.h          |  11 +-
 include/sheepdog_proto.h |   6 ++
 sheep/group.c            | 165 ++++++++++++++++++++++++++++--
 sheep/ops.c              | 177 +++++++++++++++++++++++++--------
 sheep/request.c          |   3 +-
 sheep/sheep.c            |   2 +
 sheep/sheep_priv.h       |  24 +++--
 sheep/vdi.c              | 254 +++++++++++++++++++++++++++++++++++++++++++++++
 12 files changed, 736 insertions(+), 68 deletions(-)

-- 
1.8.3.2




More information about the sheepdog mailing list