Current code bails out, but doesn't set an error. Set error to EINTR.
Details
Details
Diff Detail
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
sys/geom/geom_dev.c | ||
---|---|---|
715 | Why add a length check? |
sys/geom/geom_dev.c | ||
---|---|---|
715 | If the length is 0, we’ll be exiting anyway, and the DELETE operation has completed, so the EINTR wouldn’t convey any useful information. At least, that’s my guess. |
sys/geom/geom_dev.c | ||
---|---|---|
715 | Currently if you get signal during the last BIO_DELETE biodone(), you'll succeed. That's correct, as you've done all the work by the time you get the signal. Add the length check to avoid an unnecessary EINTR failure in that case. This also means deletes which are small enough to only need a single pass will never see EINTR here, which may help preserve existing behavior for some cases. |