Messages in this thread | | | From | youling 257 <> | Date | Thu, 2 Jan 2020 11:09:48 +0800 | Subject | Re: [PATCH] early init: open /dev/console with O_LARGEFILE |
| |
2020-01-02 5:39 GMT+08:00, Linus Torvalds <torvalds@linux-foundation.org>: > On Wed, Jan 1, 2020 at 10:32 AM Arvind Sankar <nivedita@alum.mit.edu> > wrote: >> >> Also, this shouldn't impact the current issue I think, but won't doing >> filp_open followed by 3 f_dupfd's cause the file->f_count to become 4 >> but with only 3 open fd's? Don't we have to do an fd_install for the >> first one and only 2 f_dupfd's? > > I think *this* is the real reason for the odd regression. > > Because we're leaking a file count, the original /dev/console stays > open, and we end up never calling file->f_op->release(). > > So we don't call tty_release() on that original /dev/console open, and > one effect of that is that we never then call session_clear_tty(), > which should make sure that all the processes in that session ID have > their controlling tty (signal->tty pointer) cleared. > > And if that original controlling tty wasn't cleared, then subsequent > calls to set the controlling tty won't do anything, and who knows what > odd session leader confusion we might have. > > youling, can you check if - instead of the revert - this simple 'add > an fput' fixes your warning. > > I'm not saying that the revert is wrong at this point, but honestly, > I'd like to avoid the "we revert because we didn't understand what > went wrong". It would be good to go "Aaaahhhh, _that_ was the > problem". > > Linus >
test this patch.diff, no the system/bin/sh warning, fixed.
| |