minix/servers/mfs
David van Moolenbroek c51cd5fe91 Server/driver protocols: no longer allow third-party copies.
Before safecopies, the IO_ENDPT and DL_ENDPT message fields were needed
to know which actual process to copy data from/to, as that process may
not always be the caller. Now that we have full safecopy support, these
fields have become useless for that purpose: the owner of the grant is
*always* the caller. Allowing the caller to supply another endpoint is
in fact dangerous, because the callee may then end up using a grant
from a third party. One could call this a variant of the confused
deputy problem.

From now on, safecopy calls should always use the caller's endpoint as
grant owner. This fully obsoletes the DL_ENDPT field in the
inet/ethernet protocol. IO_ENDPT has other uses besides identifying the
grant owner though. This patch renames IO_ENDPT to USER_ENDPT, not only
because that is a more fitting name (it should never be used for I/O
after all), but also in order to intentionally break any old system
source code outside the base system. If this patch breaks your code,
fixing it is fairly simple:

- DL_ENDPT should be replaced with m_source;
- IO_ENDPT should be replaced with m_source when used for safecopies;
- IO_ENDPT should be replaced with USER_ENDPT for any other use, e.g.
  when setting REP_ENDPT, matching requests in CANCEL calls, getting
  DEV_SELECT flags, and retrieving of the real user process's endpoint
  in DEV_OPEN.

The changes in this patch are binary backward compatible.
2011-04-11 17:35:05 +00:00
..
buf.h mfs - no more WRITE_IMMED 2010-10-11 15:35:43 +00:00
cache.c auto-tune mfs cache size based on FS usage and remaining system memory 2011-02-28 14:19:19 +00:00
const.h Increase NR_INODES in the FS servers to match NR_VNODES in VFS 2010-08-05 11:37:37 +00:00
device.c Server/driver protocols: no longer allow third-party copies. 2011-04-11 17:35:05 +00:00
drivers.h Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
fs.h <ansi.h> -> <minix/ansi.h> 2011-01-28 11:35:02 +00:00
glo.h mfs: minor cleanup of readahead: they can be private to read.c. 2010-06-21 18:25:04 +00:00
inode.c Return ENOSPC when out of inodes 2010-08-05 11:37:06 +00:00
inode.h Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
link.c Fix failing unmount attempt at shutdown after running test58 2010-09-17 09:34:36 +00:00
main.c decouple file system server start/termination from mount/umount 2010-11-23 19:34:56 +00:00
Makefile Rename mkfiles from minix.*.mk to bsd.*.mk 2010-06-25 18:29:09 +00:00
misc.c Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
mount.c auto-tune mfs cache size based on FS usage and remaining system memory 2011-02-28 14:19:19 +00:00
open.c - Return ENOENT when trying to add files to removed (but open) directories. 2010-09-01 09:07:18 +00:00
path.c Remove legacy MM, FS, and FS_PROC_NR macros 2010-06-08 13:58:01 +00:00
pipe.c - Introduce support for sticky bit. 2009-12-20 20:27:14 +00:00
protect.c Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
proto.h auto-tune mfs cache size based on FS usage and remaining system memory 2011-02-28 14:19:19 +00:00
read.c mfs: minor cleanup of readahead: they can be private to read.c. 2010-06-21 18:25:04 +00:00
stadir.c auto-tune mfs cache size based on FS usage and remaining system memory 2011-02-28 14:19:19 +00:00
stats.c auto-tune mfs cache size based on FS usage and remaining system memory 2011-02-28 14:19:19 +00:00
super.c change bitchunk_t from 16-bit to 32-bit 2010-12-21 10:44:45 +00:00
super.h Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
table.c mfs - statvfs call, by Buccapatnam Tirumala, Gautam. 2010-06-23 23:58:16 +00:00
time.c Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
type.h Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
utility.c Clean up MFS a bit: 2010-06-01 12:35:33 +00:00
write.c Clean up MFS a bit: 2010-06-01 12:35:33 +00:00