mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-25 11:47:43 +03:00
ZIL: allow zil_commit() to fail with error
This changes zil_commit() to have an int return, and updates all callers to check it. There are no corresponding internal changes yet; it will always return 0. Since zil_commit() is an indication that the caller _really_ wants the associated data to be durability stored, I've annotated it with the __warn_unused_result__ compiler attribute (via __must_check), to emit a warning if it's ever ussd without doing something with the return code. I hope this will mean we never misuse it in the future. Sponsored-by: Klara, Inc. Sponsored-by: Wasabi Technology, Inc. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com> Signed-off-by: Rob Norris <rob.norris@klarasystems.com> Closes #17398
This commit is contained in:
committed by
Brian Behlendorf
parent
1f8c39ddb2
commit
967b15b888
+3
-3
@@ -2965,7 +2965,7 @@ ztest_zil_commit(ztest_ds_t *zd, uint64_t id)
|
||||
|
||||
(void) pthread_rwlock_rdlock(&zd->zd_zilog_lock);
|
||||
|
||||
zil_commit(zilog, ztest_random(ZTEST_OBJECTS));
|
||||
VERIFY0(zil_commit(zilog, ztest_random(ZTEST_OBJECTS)));
|
||||
|
||||
/*
|
||||
* Remember the committed values in zd, which is in parent/child
|
||||
@@ -7936,7 +7936,7 @@ ztest_freeze(void)
|
||||
*/
|
||||
while (BP_IS_HOLE(&zd->zd_zilog->zl_header->zh_log)) {
|
||||
ztest_dmu_object_alloc_free(zd, 0);
|
||||
zil_commit(zd->zd_zilog, 0);
|
||||
VERIFY0(zil_commit(zd->zd_zilog, 0));
|
||||
}
|
||||
|
||||
txg_wait_synced(spa_get_dsl(spa), 0);
|
||||
@@ -7978,7 +7978,7 @@ ztest_freeze(void)
|
||||
/*
|
||||
* Commit all of the changes we just generated.
|
||||
*/
|
||||
zil_commit(zd->zd_zilog, 0);
|
||||
VERIFY0(zil_commit(zd->zd_zilog, 0));
|
||||
txg_wait_synced(spa_get_dsl(spa), 0);
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user