afs: Always get the reply time
Always ask for the reply time from AF_RXRPC as it's used to calculate the
callback expiry time and lock expiry times, so it's needed by most FS
operations.
Signed-off-by: David Howells <dhowells@redhat.com>
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index eeba2a3..d4bce38 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -453,7 +453,6 @@
call->xvnode = vnode;
call->out_volsync = volsync;
call->expected_version = new_inode ? 1 : vnode->status.data_version;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -645,7 +644,6 @@
call->out_volsync = NULL;
call->read_request = req;
call->expected_version = vnode->status.data_version;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -696,7 +694,6 @@
call->out_volsync = NULL;
call->read_request = req;
call->expected_version = vnode->status.data_version;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -809,7 +806,6 @@
call->out_extra_status = newstatus;
call->out_cb = newcb;
call->expected_version = current_data_version + 1;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -1887,7 +1883,6 @@
call->key = fc->key;
call->xvnode = vnode;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -1925,7 +1920,6 @@
call->key = fc->key;
call->xvnode = vnode;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -2101,7 +2095,6 @@
call->server = afs_get_server(server);
call->server_index = server_index;
call->upgrade = true;
- call->want_reply_time = true;
call->async = true;
call->max_lifespan = AFS_PROBE_MAX_LIFESPAN;
@@ -2187,7 +2180,6 @@
call->out_cb = callback;
call->out_volsync = volsync;
call->expected_version = 1; /* vnode->status.data_version */
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -2361,7 +2353,6 @@
call->out_scb = statuses;
call->out_volsync = volsync;
call->count2 = nr_fids;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 2a100be..9b44307 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -167,7 +167,7 @@
bool need_attention; /* T if RxRPC poked us */
bool async; /* T if asynchronous */
bool upgrade; /* T to request service upgrade */
- bool want_reply_time; /* T if want reply_time */
+ bool have_reply_time; /* T if have got reply_time */
bool intr; /* T if interruptible */
u16 service_id; /* Actual service ID (after upgrade) */
unsigned int debug_id; /* Trace ID */
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index d63e0c9..4fa5ce9 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -534,11 +534,11 @@
return;
}
- if (call->want_reply_time &&
+ if (!call->have_reply_time &&
rxrpc_kernel_get_reply_time(call->net->socket,
call->rxcall,
&call->reply_time))
- call->want_reply_time = false;
+ call->have_reply_time = true;
ret = call->type->deliver(call);
state = READ_ONCE(call->state);
diff --git a/fs/afs/vlclient.c b/fs/afs/vlclient.c
index 06d010a..3d4b983 100644
--- a/fs/afs/vlclient.c
+++ b/fs/afs/vlclient.c
@@ -398,7 +398,6 @@
call->vlserver = afs_get_vlserver(server);
call->server_index = server_index;
call->upgrade = true;
- call->want_reply_time = true;
call->async = true;
call->max_lifespan = AFS_PROBE_MAX_LIFESPAN;
diff --git a/fs/afs/yfsclient.c b/fs/afs/yfsclient.c
index 1f1ccf7..b3ee9997 100644
--- a/fs/afs/yfsclient.c
+++ b/fs/afs/yfsclient.c
@@ -695,7 +695,6 @@
call->out_volsync = NULL;
call->read_request = req;
call->expected_version = vnode->status.data_version;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -1847,7 +1846,6 @@
call->key = fc->key;
call->xvnode = vnode;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;
@@ -1886,7 +1884,6 @@
call->key = fc->key;
call->xvnode = vnode;
- call->want_reply_time = true;
/* marshall the parameters */
bp = call->request;