This patch seems to work well. I tested iSCSI multipath failover while writing, and it succeeded in combination with following tgt patch. http://article.gmane.org/gmane.linux.stgt/392
Tested-by: YAMADA Hideki <[email protected]> On 2014/11/05 15:06, Hitoshi Mitake wrote: > Current iscsi coherence protocol can cause inconsistency when a > gateway sheep process dies between inode update and invalidation. > > This patch makes sure that inode update must cause invalidation even > if sheep dies before actual inode. > > Cc: YAMADA Hideki <[email protected]> > Signed-off-by: Hitoshi Mitake <[email protected]> > --- > sheep/gateway.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/sheep/gateway.c b/sheep/gateway.c > index a5cee5c..7f7d1d1 100644 > --- a/sheep/gateway.c > +++ b/sheep/gateway.c > @@ -681,6 +681,9 @@ int gateway_write_obj(struct request *req) > if (!bypass_object_cache(req)) > return object_cache_handle_request(req); > > + if (is_data_vid_update(hdr)) > + invalidate_other_nodes(oid_to_vid(oid)); > + > if (is_data_vid_update(hdr)) { > size_t nr_vids = hdr->data_length / sizeof(*vids); > > @@ -701,8 +704,6 @@ int gateway_write_obj(struct request *req) > update_obj_refcnt(hdr, vids, new_vids, refs); > } > out: > - if (is_data_vid_update(hdr)) > - invalidate_other_nodes(oid_to_vid(oid)); > > free(vids); > free(refs); > -- sheepdog mailing list [email protected] http://lists.wpkg.org/mailman/listinfo/sheepdog
