bcachefs: fix disk reservation accounting in bch2_folio_reservation_get()

bch2_disk_reservation_put() zeroes out the reservation - oops.

This fixes a disk reservation leak when getting a quota reservation
returned an error.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2024-10-14 17:55:48 -04:00
parent 4007bbb203
commit 81e0b6c7c1

View File

@ -431,9 +431,9 @@ int bch2_folio_reservation_get(struct bch_fs *c,
ret = bch2_quota_reservation_add(c, inode, &res->quota, quota_sectors, true);
if (unlikely(ret)) {
struct disk_reservation tmp = { .sectors = disk_sectors };
res->disk.sectors -= disk_sectors;
bch2_disk_reservation_put(c, &tmp);
res->disk.sectors -= disk_sectors;
return ret;
}
}