Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys



Module Name:    src
Committed By:   ad
Date:           Mon Jan  7 16:12:56 UTC 2008

Modified Files:
        src/sys/compat/darwin: darwin_sysctl.c
        src/sys/compat/freebsd: freebsd_sysctl.c
        src/sys/compat/linux/common: linux_sysctl.c
        src/sys/compat/linux32/common: linux32_sysctl.c
        src/sys/compat/ndis: subr_ndis.c
        src/sys/compat/netbsd32: netbsd32_sysctl.c
        src/sys/kern: init_sysctl.c kern_sysctl.c sysv_msg.c sysv_shm.c
            uipc_domain.c vfs_bio.c vfs_subr.c
        src/sys/rump/librump/rumpkern: misc_stub.c
        src/sys/sys: lwp.h sysctl.h

Log Message:
Patch up sysctl locking:

- Lock processes, credentials, filehead etc correctly.
- Acquire a read hold on sysctl_treelock if only doing a query.
- Don't wire down the output buffer. It doesn't work correctly and the code
  regularly does long term sleeps with it held - it's not worth it.
- Don't hold locks other than sysctl_lock while doing copyout().
- Drop sysctl_lock while doing copyout / allocating memory in a few places.
- Don't take kernel_lock for sysctl.
- Fix a number of bugs spotted along the way


To generate a diff of this commit:
cvs rdiff -r1.55 -r1.56 src/sys/compat/darwin/darwin_sysctl.c
cvs rdiff -r1.11 -r1.12 src/sys/compat/freebsd/freebsd_sysctl.c
cvs rdiff -r1.33 -r1.34 src/sys/compat/linux/common/linux_sysctl.c
cvs rdiff -r1.8 -r1.9 src/sys/compat/linux32/common/linux32_sysctl.c
cvs rdiff -r1.12 -r1.13 src/sys/compat/ndis/subr_ndis.c
cvs rdiff -r1.27 -r1.28 src/sys/compat/netbsd32/netbsd32_sysctl.c
cvs rdiff -r1.117 -r1.118 src/sys/kern/init_sysctl.c
cvs rdiff -r1.212 -r1.213 src/sys/kern/kern_sysctl.c
cvs rdiff -r1.54 -r1.55 src/sys/kern/sysv_msg.c
cvs rdiff -r1.102 -r1.103 src/sys/kern/sysv_shm.c
cvs rdiff -r1.73 -r1.74 src/sys/kern/uipc_domain.c
cvs rdiff -r1.184 -r1.185 src/sys/kern/vfs_bio.c
cvs rdiff -r1.310 -r1.311 src/sys/kern/vfs_subr.c
cvs rdiff -r1.3 -r1.4 src/sys/rump/librump/rumpkern/misc_stub.c
cvs rdiff -r1.75 -r1.76 src/sys/sys/lwp.h
cvs rdiff -r1.172 -r1.173 src/sys/sys/sysctl.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index