diff --git a/kmod/src/srch.c b/kmod/src/srch.c index 54d437a9..e1b5fb90 100644 --- a/kmod/src/srch.c +++ b/kmod/src/srch.c @@ -2276,12 +2276,11 @@ static void scoutfs_srch_compact_worker(struct work_struct *work) } else { ret = -EINVAL; } - if (ret < 0) - goto commit; - ret = scoutfs_alloc_prepare_commit(sb, &alloc, &wri) ?: + scoutfs_alloc_prepare_commit(sb, &alloc, &wri); + if (ret == 0) scoutfs_block_writer_write(sb, &wri); -commit: + /* the server won't use our partial compact if _ERROR is set */ sc->meta_avail = alloc.avail; sc->meta_freed = alloc.freed;