From: Al Viro Date: Mon, 30 Mar 2009 11:20:30 +0000 (-0400) Subject: New locking/refcounting for fs_struct X-Git-Tag: v2.6.30-rc1~244^2~9 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=498052bba55ecaff58db6a1436b0e25bfd75a7ff;p=pandora-kernel.git New locking/refcounting for fs_struct * all changes of current->fs are done under task_lock and write_lock of old fs->lock * refcount is not atomic anymore (same protection) * its decrements are done when removing reference from current; at the same time we decide whether to free it. * put_fs_struct() is gone * new field - ->in_exec. Set by check_unsafe_exec() if we are trying to do execve() and only subthreads share fs_struct. Cleared when finishing exec (success and failure alike). Makes CLONE_FS fail with -EAGAIN if set. * check_unsafe_exec() may fail with -EAGAIN if another execve() from subthread is in progress. Signed-off-by: Al Viro --- Reading git-diff-tree failed