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

Reply via email to