On Thu, 21 Feb 2013 19:02:50 +0000 (UTC) John Baldwin <j...@freebsd.org> wrote:
> Author: jhb > Date: Thu Feb 21 19:02:50 2013 > New Revision: 247116 > URL: http://svnweb.freebsd.org/changeset/base/247116 > > Log: > Further refine the handling of stop signals in the NFS client. The > changes in r246417 were incomplete as they did not add explicit > calls to sigdeferstop() around all the places that previously passed > SBDRY to _sleep(). In addition, nfs_getcacheblk() could trigger a > write RPC from getblk() resulting in sigdeferstop() recursing. > Rather than manually deferring stop signals in specific places, > change the VFS_*() and VOP_*() methods to defer stop signals for > filesystems which request this behavior via a new VFCF_SBDRY flag. > Note that this has to be a VFC flag rather than a MNTK flag so that > it works properly with VFS_MOUNT() when the mount is not yet fully > constructed. For now, only the NFS clients are set this new flag in > VFS_SET(). > A few other related changes: > - Add an assertion to ensure that TDF_SBDRY doesn't leak to > userland. > - When a lookup request uses VOP_READLINK() to follow a symlink, > mark the request as being on behalf of the thread performing the > lookup (cnp_thread) rather than using a NULL thread pointer. This > causes NFS to properly handle signals during this VOP on an > interruptible mount. > > PR: kern/176179 > Reported by: Russell Cattelan (sigdeferstop() recursion) > Reviewed by: kib > MFC after: 1 month This change is causing init to crash for me on armv6. I'm netbooting a PandaBoard and it appears init is receiving a SIGABRT before it gets into main(). Do you have any idea where I could look to track down why it is doing this? Andrew _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"