diff --git a/kmod/src/client.c b/kmod/src/client.c index 5c6a30de..642a0c5d 100644 --- a/kmod/src/client.c +++ b/kmod/src/client.c @@ -150,7 +150,7 @@ static int client_lock_response(struct super_block *sb, void *resp, unsigned int resp_len, int error, void *data) { - if (resp_len != sizeof(struct scoutfs_net_lock_grant_response)) + if (resp_len != sizeof(struct scoutfs_net_lock)) return -EINVAL; /* XXX error? */ diff --git a/kmod/src/forest.c b/kmod/src/forest.c index c967c15a..cb41b259 100644 --- a/kmod/src/forest.c +++ b/kmod/src/forest.c @@ -276,7 +276,6 @@ int scoutfs_forest_read_items(struct super_block *sb, scoutfs_inc_counter(sb, forest_read_items); calc_bloom_nrs(&bloom, &lock->start); - roots = lock->roots; retry: ret = scoutfs_client_get_roots(sb, &roots); if (ret) diff --git a/kmod/src/format.h b/kmod/src/format.h index 70ea4ded..6db52297 100644 --- a/kmod/src/format.h +++ b/kmod/src/format.h @@ -895,11 +895,6 @@ struct scoutfs_net_lock { __u8 __pad[6]; }; -struct scoutfs_net_lock_grant_response { - struct scoutfs_net_lock nl; - struct scoutfs_net_roots roots; -}; - struct scoutfs_net_lock_recover { __le16 nr; __u8 __pad[6]; diff --git a/kmod/src/lock.c b/kmod/src/lock.c index 189af768..10d95507 100644 --- a/kmod/src/lock.c +++ b/kmod/src/lock.c @@ -638,7 +638,6 @@ static void lock_grant_worker(struct work_struct *work) struct lock_info *linfo = container_of(work, struct lock_info, grant_work); struct super_block *sb = linfo->sb; - struct scoutfs_net_lock_grant_response *gr; struct scoutfs_net_lock *nl; struct scoutfs_lock *lock; struct scoutfs_lock *tmp; @@ -648,8 +647,7 @@ static void lock_grant_worker(struct work_struct *work) spin_lock(&linfo->lock); list_for_each_entry_safe(lock, tmp, &linfo->grant_list, grant_head) { - gr = &lock->grant_resp; - nl = &lock->grant_resp.nl; + nl = &lock->grant_nl; /* wait for reordered invalidation to finish */ if (lock->mode != nl->old_mode) @@ -667,7 +665,6 @@ static void lock_grant_worker(struct work_struct *work) lock->request_pending = 0; lock->mode = nl->new_mode; lock->write_version = le64_to_cpu(nl->write_version); - lock->roots = gr->roots; if (lock_count_match_exists(nl->new_mode, lock->waiters)) extend_grace(sb, lock); @@ -689,9 +686,8 @@ static void lock_grant_worker(struct work_struct *work) * work to process. */ int scoutfs_lock_grant_response(struct super_block *sb, - struct scoutfs_net_lock_grant_response *gr) + struct scoutfs_net_lock *nl) { - struct scoutfs_net_lock *nl = &gr->nl; DECLARE_LOCK_INFO(sb, linfo); struct scoutfs_lock *lock; @@ -705,7 +701,7 @@ int scoutfs_lock_grant_response(struct super_block *sb, trace_scoutfs_lock_grant_response(sb, lock); BUG_ON(!lock->request_pending); - lock->grant_resp = *gr; + lock->grant_nl = *nl; list_add_tail(&lock->grant_head, &linfo->grant_list); queue_grant_work(linfo); diff --git a/kmod/src/lock.h b/kmod/src/lock.h index b447df54..46dcdf96 100644 --- a/kmod/src/lock.h +++ b/kmod/src/lock.h @@ -23,7 +23,6 @@ struct scoutfs_lock { u64 refresh_gen; u64 write_version; u64 dirty_trans_seq; - struct scoutfs_net_roots roots; struct list_head lru_head; wait_queue_head_t waitq; ktime_t grace_deadline; @@ -31,7 +30,7 @@ struct scoutfs_lock { invalidate_pending:1; struct list_head grant_head; - struct scoutfs_net_lock_grant_response grant_resp; + struct scoutfs_net_lock grant_nl; struct list_head inv_head; struct scoutfs_net_lock inv_nl; u64 inv_net_id; @@ -57,7 +56,7 @@ struct scoutfs_lock_coverage { }; int scoutfs_lock_grant_response(struct super_block *sb, - struct scoutfs_net_lock_grant_response *gr); + struct scoutfs_net_lock *nl); int scoutfs_lock_invalidate_request(struct super_block *sb, u64 net_id, struct scoutfs_net_lock *nl); int scoutfs_lock_recover_request(struct super_block *sb, u64 net_id, diff --git a/kmod/src/lock_server.c b/kmod/src/lock_server.c index 0e04ac66..a2d96dbf 100644 --- a/kmod/src/lock_server.c +++ b/kmod/src/lock_server.c @@ -484,7 +484,6 @@ static int process_waiting_requests(struct super_block *sb, struct server_lock_node *snode) { DECLARE_LOCK_SERVER_INFO(sb, inf); - struct scoutfs_net_lock_grant_response gres; struct scoutfs_net_lock nl; struct client_lock_entry *req; struct client_lock_entry *req_tmp; @@ -547,11 +546,8 @@ static int process_waiting_requests(struct super_block *sb, nl.write_version = cpu_to_le64(wv); } - gres.nl = nl; - scoutfs_server_get_roots(sb, &gres.roots); - ret = scoutfs_server_lock_response(sb, req->rid, - req->net_id, &gres); + req->net_id, &nl); if (ret) goto out; diff --git a/kmod/src/server.c b/kmod/src/server.c index abea743b..6ecd8e85 100644 --- a/kmod/src/server.c +++ b/kmod/src/server.c @@ -182,7 +182,7 @@ int scoutfs_server_apply_commit(struct super_block *sb, int err) return err; } -void scoutfs_server_get_roots(struct super_block *sb, +static void get_roots(struct super_block *sb, struct scoutfs_net_roots *roots) { DECLARE_SERVER_INFO(sb, server); @@ -556,7 +556,7 @@ static int server_get_roots(struct super_block *sb, memset(&roots, 0, sizeof(roots)); ret = -EINVAL; } else { - scoutfs_server_get_roots(sb, &roots); + get_roots(sb, &roots); ret = 0; } @@ -862,13 +862,13 @@ int scoutfs_server_lock_request(struct super_block *sb, u64 rid, } int scoutfs_server_lock_response(struct super_block *sb, u64 rid, u64 id, - struct scoutfs_net_lock_grant_response *gr) + struct scoutfs_net_lock *nl) { struct server_info *server = SCOUTFS_SB(sb)->server_info; return scoutfs_net_response_node(sb, server->conn, rid, SCOUTFS_NET_CMD_LOCK, id, 0, - gr, sizeof(*gr)); + nl, sizeof(*nl)); } static bool invalid_recover(struct scoutfs_net_lock_recover *nlr, diff --git a/kmod/src/server.h b/kmod/src/server.h index f528789e..84e25ddb 100644 --- a/kmod/src/server.h +++ b/kmod/src/server.h @@ -59,11 +59,9 @@ do { \ int scoutfs_server_lock_request(struct super_block *sb, u64 rid, struct scoutfs_net_lock *nl); int scoutfs_server_lock_response(struct super_block *sb, u64 rid, u64 id, - struct scoutfs_net_lock_grant_response *gr); + struct scoutfs_net_lock *nl); int scoutfs_server_lock_recover_request(struct super_block *sb, u64 rid, struct scoutfs_key *key); -void scoutfs_server_get_roots(struct super_block *sb, - struct scoutfs_net_roots *roots); int scoutfs_server_hold_commit(struct super_block *sb); int scoutfs_server_apply_commit(struct super_block *sb, int err);