]> Zhao Yanbai Git Server - minix.git/commit
Remove support for reopening character devices 78/978/2
authorDavid van Moolenbroek <david@minix3.org>
Tue, 10 Sep 2013 14:06:37 +0000 (16:06 +0200)
committerLionel Sambuc <lionel@minix3.org>
Sat, 1 Mar 2014 08:04:52 +0000 (09:04 +0100)
commit87337273e4639cd1f85ad61bb935c4d93c264e3a
tree541b40ca7567d2cd266d60a7d3f237952d04f605
parenta4277506a2e43ca1e05c947ae9d2447e4ee079ff
Remove support for reopening character devices

Previously, VFS would reopen a character device after a driver crash
if the associated file descriptor was opened with the O_REOPEN flag.
This patch removes support for this feature. The code was complex,
full of uncovered corner cases, and hard to test. Moreover, it did not
actually hide the crash from user applications: they would get an
error code to indicate that something went wrong, and have to decide
based on the nature of the underlying device how to continue.

- remove support for O_REOPEN, and make playwave(1) reopen its device;
- remove support for the DEV_REOPEN protocol message;
- remove all code in VFS related to reopening character devices;
- no longer change VFS filp reference count and FD bitmap upon filp
  invalidation; instead, make get_filp* fail all calls on invalidated
  FDs except when obtained with the locktype VNODE_OPCL which is used
  by close_fd only;
- remove the VFS fproc file descriptor bitmap entirely, returning to
  the situation that a FD is in use if its slot points to a filp; use
  FILP_CLOSED as single means of marking a filp as invalidated.

Change-Id: I34f6bc69a036b3a8fc667c1f80435ff3af56558f
17 files changed:
commands/playwave/playwave.c
include/minix/com.h
lib/libchardriver/chardriver.c
servers/vfs/README
servers/vfs/device.c
servers/vfs/dmap.c
servers/vfs/exec.c
servers/vfs/file.h
servers/vfs/filedes.c
servers/vfs/fproc.h
servers/vfs/main.c
servers/vfs/misc.c
servers/vfs/open.c
servers/vfs/pipe.c
servers/vfs/proto.h
servers/vfs/read.c
servers/vfs/select.c