server hold_commit returns void

When we moved to the current allocator we fixed up the server commit
path to initialize the pair of allocators as a commit is finished rather
than before it starts.  This removed all the error cases from
hold_commit.  Remove the error handling from hold_commit calls to make
the system just a bit simpler.

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2020-12-08 13:53:22 -08:00
parent cee6ad34d3
commit bad1c602f9
2 changed files with 13 additions and 39 deletions

View File

@@ -187,15 +187,13 @@ static void stop_server(struct server_info *server)
* (lock_server) and which are not called directly by the server core
* (async timeout work).
*/
int scoutfs_server_hold_commit(struct super_block *sb)
void scoutfs_server_hold_commit(struct super_block *sb)
{
DECLARE_SERVER_INFO(sb, server);
scoutfs_inc_counter(sb, server_commit_hold);
down_read(&server->commit_rwsem);
return 0;
}
/*
@@ -394,9 +392,7 @@ static int server_alloc_inodes(struct super_block *sb,
memcpy(&lecount, arg, arg_len);
ret = scoutfs_server_hold_commit(sb);
if (ret)
goto out;
scoutfs_server_hold_commit(sb);
spin_lock(&sbi->next_ino_lock);
ino = le64_to_cpu(super->next_ino);
@@ -404,7 +400,7 @@ static int server_alloc_inodes(struct super_block *sb,
le64_add_cpu(&super->next_ino, nr);
spin_unlock(&sbi->next_ino_lock);
ret = scoutfs_server_apply_commit(sb, ret);
ret = scoutfs_server_apply_commit(sb, 0);
if (ret == 0) {
ial.ino = cpu_to_le64(ino);
ial.nr = cpu_to_le64(nr);
@@ -606,9 +602,7 @@ static int server_get_log_trees(struct super_block *sb,
goto out;
}
ret = scoutfs_server_hold_commit(sb);
if (ret)
goto out;
scoutfs_server_hold_commit(sb);
mutex_lock(&server->logs_mutex);
@@ -717,11 +711,7 @@ static int server_commit_log_trees(struct super_block *sb,
/* don't modify the caller's log_trees */
memcpy(&lt, arg, sizeof(struct scoutfs_log_trees));
ret = scoutfs_server_hold_commit(sb);
if (ret < 0) {
scoutfs_err(sb, "server error preparing commit: %d", ret);
goto out;
}
scoutfs_server_hold_commit(sb);
mutex_lock(&server->logs_mutex);
@@ -952,9 +942,7 @@ static int server_advance_seq(struct super_block *sb,
goto out;
}
ret = scoutfs_server_hold_commit(sb);
if (ret)
goto out;
scoutfs_server_hold_commit(sb);
down_write(&server->seq_rwsem);
@@ -1151,9 +1139,7 @@ static int server_srch_get_compact(struct super_block *sb,
goto out;
}
ret = scoutfs_server_hold_commit(sb);
if (ret)
goto out;
scoutfs_server_hold_commit(sb);
mutex_lock(&server->srch_mutex);
ret = scoutfs_srch_get_compact(sb, &server->alloc, &server->wri,
@@ -1215,9 +1201,7 @@ static int server_srch_commit_compact(struct super_block *sb,
}
sc = arg;
ret = scoutfs_server_hold_commit(sb);
if (ret)
goto out;
scoutfs_server_hold_commit(sb);
mutex_lock(&server->srch_mutex);
ret = scoutfs_srch_commit_compact(sb, &server->alloc, &server->wri,
@@ -1347,9 +1331,7 @@ static int server_set_volopt(struct super_block *sb, struct scoutfs_net_connecti
mutex_lock(&server->volopt_mutex);
ret = scoutfs_server_hold_commit(sb);
if (ret)
goto unlock;
scoutfs_server_hold_commit(sb);
if (le64_to_cpu(volopt->set_bits) & SCOUTFS_VOLOPT_DATA_ALLOC_ZONE_BLOCKS_BIT) {
opt = le64_to_cpu(volopt->data_alloc_zone_blocks);
@@ -1389,7 +1371,6 @@ apply:
super->volopt = server->volopt;
write_seqcount_end(&server->volopt_seqcount);
unlock:
mutex_unlock(&server->volopt_mutex);
out:
return scoutfs_net_response(sb, conn, cmd, id, ret, NULL, 0);
@@ -1419,9 +1400,7 @@ static int server_clear_volopt(struct super_block *sb, struct scoutfs_net_connec
mutex_lock(&server->volopt_mutex);
ret = scoutfs_server_hold_commit(sb);
if (ret)
goto unlock;
scoutfs_server_hold_commit(sb);
for (i = 0, bit = 1, opt = first_valopt(&super->volopt); i < 64; i++, bit <<= 1, opt++) {
if (le64_to_cpu(volopt->set_bits) & bit) {
@@ -1439,7 +1418,6 @@ static int server_clear_volopt(struct super_block *sb, struct scoutfs_net_connec
super->volopt = server->volopt;
write_seqcount_end(&server->volopt_seqcount);
unlock:
mutex_unlock(&server->volopt_mutex);
out:
return scoutfs_net_response(sb, conn, cmd, id, ret, NULL, 0);
@@ -1652,9 +1630,7 @@ static int server_greeting(struct super_block *sb,
}
if (gr->server_term == 0) {
ret = scoutfs_server_hold_commit(sb);
if (ret < 0)
goto send_err;
scoutfs_server_hold_commit(sb);
ret = insert_mounted_client(sb, le64_to_cpu(gr->rid), le64_to_cpu(gr->flags),
&conn->peername);
@@ -1727,9 +1703,7 @@ static int reclaim_rid(struct super_block *sb, u64 rid)
{
int ret;
ret = scoutfs_server_hold_commit(sb);
if (ret < 0)
return ret;
scoutfs_server_hold_commit(sb);
/* delete mounted client last, recovery looks for it */
ret = scoutfs_lock_server_farewell(sb, rid) ?:

View File

@@ -62,7 +62,7 @@ int scoutfs_server_lock_response(struct super_block *sb, u64 rid, u64 id,
struct scoutfs_net_lock *nl);
int scoutfs_server_lock_recover_request(struct super_block *sb, u64 rid,
struct scoutfs_key *key);
int scoutfs_server_hold_commit(struct super_block *sb);
void scoutfs_server_hold_commit(struct super_block *sb);
int scoutfs_server_apply_commit(struct super_block *sb, int err);
void scoutfs_server_recov_finish(struct super_block *sb, u64 rid, int which);