Ka Ho Ng 1eaa36523c fspacectl(2): Clarifies the return values
rmacklem@ spotted two things in the system call:
- Upon returning from a successful operation, vop_stddeallocate can
  update rmsr.r_offset to a value greater than file size. This behavior,
  although being harmless, can be confusing.
- The EINVAL return value for rqsr.r_offset + rqsr.r_len > OFF_MAX is
  undocumented.

This commit has the following changes:
- vop_stddeallocate and shm_deallocate to bound the the affected area
  further by the file size.
- The EINVAL case for rqsr.r_offset + rqsr.r_len > OFF_MAX is
  documented.
- The fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9)'s return
  len is explicitly documented the be the value 0, and the return offset
  is restricted to be the smallest of off + len and current file size
  suggested by kib@. This semantic allows callers to interact better
  with potential file size growth after the call.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	imp, kib
Differential Revision:	https://reviews.freebsd.org/D31604
2021-08-24 17:08:28 +08:00
..
2021-01-07 09:31:03 +00:00
2020-04-19 02:20:39 +00:00
2020-07-19 23:56:19 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-04-19 02:18:40 +00:00
2019-12-11 17:37:53 +00:00
2021-06-13 22:01:15 +02:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-09-11 13:28:37 +00:00
2019-12-11 17:37:53 +00:00
2020-08-04 21:09:36 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2021-03-29 11:14:27 +02:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2021-02-23 20:08:10 +02:00
2019-12-11 17:37:53 +00:00
2021-01-13 23:56:18 -06:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2021-04-17 22:10:13 +02:00
2021-06-13 22:01:15 +02:00
2020-09-11 13:28:37 +00:00
2020-06-17 10:42:20 +00:00
2019-12-11 17:37:53 +00:00
2020-10-09 19:12:44 +00:00
2019-12-21 21:01:03 +00:00
2021-08-20 13:53:48 +02:00
2021-02-01 09:32:07 +00:00
2021-06-02 17:25:37 -07:00
2021-01-08 13:58:35 -06:00
2020-10-09 19:12:44 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-09-11 13:28:37 +00:00
2020-05-21 01:55:35 +00:00
2019-12-11 17:37:53 +00:00
2020-05-21 21:00:46 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2021-04-14 18:16:59 +03:00
2021-02-18 15:59:34 +01:00