Messages in this thread |  | | | Subject | Re: tty's use of file_list_lock and file_move | | From | Alan Cox <> | | Date | Mon, 10 Jul 2006 19:05:08 +0100 |
| |
Ar Llu, 2006-07-10 am 13:27 -0400, ysgrifennodd Jon Smirl: > > Its explained in the comment in do_SAK. > > This problem seems to be aggravated by reusing the tty_struct for that > tty. With the refcount patch it is now easy to disassociate an > existing tty (and the processes attached to it) from the array > tracking tty minors.
The real problem is the rather deeper one - the lack of revoke(). Its possible to paper over that with SELinux but really we need revoke() and when you get revoke() you get the handle stuff cleaned up
We hold file_list_lock because we have to find everyone using that tty and hang up their instance of it, then flip the file operations not because we need to protect against tty structs going away. It's needed in order to walk the file list and protects against the file list itself changing rather than the tty structs. It may well be possible to move that to a tty layer private lock with care, but it would need care to deal with VFS operations.
We hold the ->files->file_lock because we have to walk other processes file tables in a safe fashion in SAK. That one is fairly clear.
Alan
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |