From e4b1bc6ccc0376e30d3fabf676e7c60d6f732718 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Fri, 8 Oct 2010 12:35:10 -0400 Subject: [PATCH] pnfs: set stateid.seqid to 0 for data server io Signed-off-by: Casey Bodley --- daemon/pnfs.h | 2 +- daemon/pnfs_io.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/daemon/pnfs.h b/daemon/pnfs.h index 5f4259f..b3806f2 100644 --- a/daemon/pnfs.h +++ b/daemon/pnfs.h @@ -195,7 +195,7 @@ typedef struct __pnfs_io_pattern { struct __pnfs_io_thread *threads; struct __nfs41_root *root; nfs41_path_fh *meta_file; - stateid4 *stateid; + stateid4 stateid; pnfs_file_layout *layout; unsigned char *buffer; uint64_t offset_start; diff --git a/daemon/pnfs_io.c b/daemon/pnfs_io.c index 9b0bd67..38e55a0 100644 --- a/daemon/pnfs_io.c +++ b/daemon/pnfs_io.c @@ -77,7 +77,11 @@ static enum pnfs_status pattern_init( pattern->root = root; pattern->meta_file = meta_file; - pattern->stateid = stateid; + /* 13.9.1. Global Stateid Requirements + * "The stateid sent to the data server MUST be sent + * with the seqid set to zero" */ + memcpy(&pattern->stateid, stateid, sizeof(stateid4)); + pattern->stateid.seqid = 0; pattern->layout = layout; pattern->buffer = buffer; pattern->offset_start = offset; @@ -297,7 +301,7 @@ static uint32_t WINAPI file_layout_read_thread(void *args) pnfs_io_unit io; pnfs_io_thread *thread = (pnfs_io_thread*)args; pnfs_io_pattern *pattern = thread->pattern; - stateid4 *state = pattern->stateid; + stateid4 *state = &pattern->stateid; pnfs_data_server *server; nfs41_client *client; uint32_t maxreadsize, bytes_read, total_read; @@ -360,7 +364,7 @@ static uint32_t WINAPI file_layout_write_thread(void *args) nfs41_write_verf verf; pnfs_io_thread *thread = (pnfs_io_thread*)args; pnfs_io_pattern *pattern = thread->pattern; - stateid4 *state = pattern->stateid; + stateid4 *state = &pattern->stateid; pnfs_data_server *server; pnfs_file_layout *layout = pattern->layout; nfs41_client *client;