From: David Howells Date: Tue, 14 May 2019 10:44:26 +0000 (+0100) Subject: afs: Always get the reply time X-Git-Tag: v5.4-rc1~950^2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4571577f16c82f8db8133b228cdca5fd61042c77;p=platform%2Fkernel%2Flinux-rpi.git 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 --- 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 @@ int afs_fs_fetch_file_status(struct afs_fs_cursor *fc, struct afs_volsync *volsy 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 @@ static int afs_fs_fetch_data64(struct afs_fs_cursor *fc, struct afs_read *req) 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 @@ int afs_fs_fetch_data(struct afs_fs_cursor *fc, struct afs_read *req) 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 @@ int afs_fs_create(struct afs_fs_cursor *fc, 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 @@ int afs_fs_set_lock(struct afs_fs_cursor *fc, afs_lock_type_t type) call->key = fc->key; call->xvnode = vnode; - call->want_reply_time = true; /* marshall the parameters */ bp = call->request; @@ -1925,7 +1920,6 @@ int afs_fs_extend_lock(struct afs_fs_cursor *fc) call->key = fc->key; call->xvnode = vnode; - call->want_reply_time = true; /* marshall the parameters */ bp = call->request; @@ -2101,7 +2095,6 @@ struct afs_call *afs_fs_get_capabilities(struct afs_net *net, 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 @@ int afs_fs_fetch_status(struct afs_fs_cursor *fc, 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 @@ int afs_fs_inline_bulk_status(struct afs_fs_cursor *fc, 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 @@ struct afs_call { 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 @@ static void afs_deliver_to_call(struct afs_call *call) 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 @@ struct afs_call *afs_vl_get_capabilities(struct afs_net *net, 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 @@ int yfs_fs_fetch_data(struct afs_fs_cursor *fc, struct afs_read *req) 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 @@ int yfs_fs_set_lock(struct afs_fs_cursor *fc, afs_lock_type_t type) call->key = fc->key; call->xvnode = vnode; - call->want_reply_time = true; /* marshall the parameters */ bp = call->request; @@ -1886,7 +1884,6 @@ int yfs_fs_extend_lock(struct afs_fs_cursor *fc) call->key = fc->key; call->xvnode = vnode; - call->want_reply_time = true; /* marshall the parameters */ bp = call->request;