summaryrefslogtreecommitdiff
path: root/sys/kern
Commit message (Collapse)AuthorAgeFilesLines
* Use only one mutex for the entire mbuf subsystem.Alfred Perlstein2001-04-031-44/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use atomic operations for the stats updating, instead protect the counts with the mbuf mutex. Most twiddling of the stats was done right before or after releasing a mutex. By doing this we reduce the number of locked ops needed as well as allow a sysctl to gain a consitant view of the entire stats structure. In the future... This will allow us to chain common mbuf operations that would normally need to aquire/release 2 or 3 of the locks to build an mbuf with a cluster or external data attached into a single op requiring only one lock. Simplify the per-cpu locks that are planned. There's also some if (1) code that should check if the "how" operation specifies blocking/non-blocking behavior, we _could_ make it so that we hold onto the mutex through calls into kmem_alloc when non-blocking requests are made, but for safety reasons we currently drop and reaquire the mutex around the calls. Also, note that calling kmem_alloc is rare and only happens during a shortage so drop/re-getting the mutex will not be a common occurance. Remove some #define's that seemed to obfuscate the code to me. Remove an extranious comment. Remove an XXX, including mutex.h isn't a crime. Reviewed by: bmilekic Notes: svn path=/head/; revision=75105
* Change stop() to require the sched_lock as well as p's process lock toJohn Baldwin2001-04-031-6/+8
| | | | | | | | | avoid silly lock contention on sched_lock since in 2 out of the 3 places that we call stop(), we get sched_lock right after calling it and we were locking sched_lock inside of stop() anyways. Notes: svn path=/head/; revision=75104
* - Move the second stop() of process 'p' in issignal() to be after we sendJohn Baldwin2001-04-021-3/+2
| | | | | | | | | | | | | | | SIGCHLD to our parent process. Otherwise, we could block while obtaining the process lock for our parent process and switch out while we were in SSTOP. Even worse, when we try to resume from the mutex being blocked on our p_stat will be SRUN, not SSTOP. - Fix a comment above stop() to indicate that it requires that the proc lock be held, not a proctree lock. Reported by: markm Sleuthing by: jake Notes: svn path=/head/; revision=75091
* o Part two of introduction of extattr_{delete,get,set}_fd() system calls,Robert Watson2001-03-312-2/+8
| | | | | | | | | regenerate necessary automatically-generated code. Obtained from: TrustedBSD Project Notes: svn path=/head/; revision=75039
* o Introduce extattr_{delete,get,set}_fd() to allow extended attributeRobert Watson2001-03-313-148/+434
| | | | | | | | | | | | | | | | operations on file descriptors, which complement the existing set of calls, extattr_{delete,get,set}_file() which act on paths. In doing so, restructure the system call implementation such that the two sets of functions share most of the relevant code, rather than duplicating it. This pushes the vnode locking into the shared code, but keeps the copying in of some arguments in the system call code. Allowing access via file descriptors reduces the opportunity for race conditions when managing extended attributes. Obtained from: TrustedBSD Project Notes: svn path=/head/; revision=75038
* o Restructure privilege check associated with process visibility forRobert Watson2001-03-291-3/+1
| | | | | | | | | | | | ps_showallprocs such that if superuser is present to override process hiding, the search falls through [to success]. When additional restrictions are placed on process visibility, such as MAC, new clauses will be placed above the return(0). Obtained from: TrustedBSD Project Notes: svn path=/head/; revision=75005
* o introduce u_cansee(), which performs access control checks betweenRobert Watson2001-03-281-14/+26
| | | | | | | | | | | | | two subject ucreds. Unlike p_cansee(), u_cansee() doesn't have process lock requirements, only valid ucred reference requirements, so is prefered as process locking improves. For now, back p_cansee() into u_cansee(), but eventually p_cansee() will go away. Reviewed by: jhb, tmm Obtained from: TrustedBSD Project Notes: svn path=/head/; revision=74956
* Close a race condition where if we were obtaining a sleep lock and no spinJohn Baldwin2001-03-281-1/+14
| | | | | | | | | | | locks were held, we could be preempted and switch CPU's in between the time that we set a variable to the list of spin locks on our CPU and the time that we checked that variable to ensure no spinlocks were held while grabbing a sleep lock. Losing the race resulted in checking some other CPU's spin lock list and bogusly panicing. Notes: svn path=/head/; revision=74944
* - s/mutexes/locks/g in appropriate comments.John Baldwin2001-03-281-4/+4
| | | | | | | | - Rename the 'show mutexes' ddb command to 'show locks' since it shows a list of all the lock objects held by the current process. Notes: svn path=/head/; revision=74930
* Convert the allproc and proctree locks from lockmgr locks to sx locks.John Baldwin2001-03-2813-73/+85
| | | | Notes: svn path=/head/; revision=74927
* Pass in a pointer to the mutex's lock_object as the second argument toJohn Baldwin2001-03-281-4/+4
| | | | | | | WITNESS_SLEEP() rather than the mutex itself. Notes: svn path=/head/; revision=74920
* Catch up to header include changes:John Baldwin2001-03-288-4/+9
| | | | | | | | - <sys/mutex.h> now requires <sys/systm.h> - <sys/mutex.h> and <sys/sx.h> now require <sys/lock.h> Notes: svn path=/head/; revision=74914
* Rework the witness code to work with sx locks as well as mutexes.John Baldwin2001-03-288-3542/+1020
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Introduce lock classes and lock objects. Each lock class specifies a name and set of flags (or properties) shared by all locks of a given type. Currently there are three lock classes: spin mutexes, sleep mutexes, and sx locks. A lock object specifies properties of an additional lock along with a lock name and all of the extra stuff needed to make witness work with a given lock. This abstract lock stuff is defined in sys/lock.h. The lockmgr constants, types, and prototypes have been moved to sys/lockmgr.h. For temporary backwards compatability, sys/lock.h includes sys/lockmgr.h. - Replace proc->p_spinlocks with a per-CPU list, PCPU(spinlocks), of spin locks held. By making this per-cpu, we do not have to jump through magic hoops to deal with sched_lock changing ownership during context switches. - Replace proc->p_heldmtx, formerly a list of held sleep mutexes, with proc->p_sleeplocks, which is a list of held sleep locks including sleep mutexes and sx locks. - Add helper macros for logging lock events via the KTR_LOCK KTR logging level so that the log messages are consistent. - Add some new flags that can be passed to mtx_init(): - MTX_NOWITNESS - specifies that this lock should be ignored by witness. This is used for the mutex that blocks a sx lock for example. - MTX_QUIET - this is not new, but you can pass this to mtx_init() now and no events will be logged for this lock, so that one doesn't have to change all the individual mtx_lock/unlock() operations. - All lock objects maintain an initialized flag. Use this flag to export a mtx_initialized() macro that can be safely called from drivers. Also, we on longer walk the all_mtx list if MUTEX_DEBUG is defined as witness performs the corresponding checks using the initialized flag. - The lock order reversal messages have been improved to output slightly more accurate file and line numbers. Notes: svn path=/head/; revision=74912
* - Resort some includes to deal with the new witness code coming in shortly.John Baldwin2001-03-281-4/+8
| | | | | | | | | - Make sure we have Giant locked before calling coredump() in sigexit(). Spotted by: peter (2) Notes: svn path=/head/; revision=74911
* Don't explicitly zero p_intr_nesting_level and p_aioinfo in fork.John Baldwin2001-03-281-2/+0
| | | | Notes: svn path=/head/; revision=74905
* Switch from save/disable/restore_intr() to critical_enter/exit().John Baldwin2001-03-282-8/+7
| | | | Notes: svn path=/head/; revision=74903
* Catch up to the mtx_saveintr -> mtx_savecrit change.John Baldwin2001-03-281-3/+3
| | | | Notes: svn path=/head/; revision=74902
* Use mtx_intr_enable() on sched_lock to ensure child processes always startJohn Baldwin2001-03-281-2/+2
| | | | | | | | | with interrupts enabled rather than calling the no-longer MI function enable_intr(). This is bogus anyways and in theory shouldn't even be needed. Notes: svn path=/head/; revision=74901
* - Switch from using save/disable/restore_intr to using critical_enter/exitJohn Baldwin2001-03-283-6/+102
| | | | | | | | | | | | | | | | | | | | and change the u_int mtx_saveintr member of struct mtx to a critical_t mtx_savecrit. - On the alpha we no longer need a custom _get_spin_lock() macro to avoid an extra PAL call, so remove it. - Partially fix using mutexes with WITNESS in modules. Change all the _mtx_{un,}lock_{spin,}_flags() macros to accept explicit file and line parameters and rename them to use a prefix of two underscores. Inside of kern_mutex.c, generate wrapper functions for _mtx_{un,}lock_{spin,}_flags() (only using a prefix of one underscore) that are called from modules. The macros mtx_{un,}lock_{spin,}_flags() are mapped to the __mtx_* macros inside of the kernel to inline the usual case of mutex operations and map to the internal _mtx_* functions in the module case so that modules will use WITNESS and KTR logging if the kernel is compiled with support for it. Notes: svn path=/head/; revision=74900
* Last commit was broken.. It always prints '[CTRL-C to abort]'.Paul Saab2001-03-281-0/+21
| | | | | | | | | | Move duplicate code for printing the status of the dump and checking for abort into a separate function. Pointy hat to: me Notes: svn path=/head/; revision=74890
* Don't leak the memory we've just malloced if we can't find theDavid Malone2001-03-271-2/+2
| | | | | | | | | | | process we're looking for. (I don't think this can currently happen, but it depends how the function is called). PR: 25932 Submitted by: David Xu <davidx@viasoft.com.cn> Notes: svn path=/head/; revision=74877
* Make cblock_alloc_cblocks() spell its own nameYaroslav Tykhiy2001-03-272-2/+2
| | | | | | | | | correctly in its warning message. PR: kern/7693 Notes: svn path=/head/; revision=74846
* Rewrite of the CAM error recovery code.Kenneth D. Merry2001-03-271-19/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the major changes include: - The SCSI error handling portion of cam_periph_error() has been broken out into a number of subfunctions to better modularize the code that handles the hierarchy of SCSI errors. As a result, the code is now much easier to read. - String handling and error printing has been significantly revamped. We now use sbufs to do string formatting instead of using printfs (for the kernel) and snprintf/strncat (for userland) as before. There is a new catchall error printing routine, cam_error_print() and its string-based counterpart, cam_error_string() that allow the kernel and userland applications to pass in a CCB and have errors printed out properly, whether or not they're SCSI errors. Among other things, this helped eliminate a fair amount of duplicate code in camcontrol. We now print out more information than before, including the CAM status and SCSI status and the error recovery action taken to remedy the problem. - sbufs are now available in userland, via libsbuf. This change was necessary since most of the error printing code is shared between libcam and the kernel. - A new transfer settings interface is included in this checkin. This code is #ifdef'ed out, and is primarily intended to aid discussion with HBA driver authors on the final form the interface should take. There is example code in the ahc(4) driver that implements the HBA driver side of the new interface. The new transfer settings code won't be enabled until we're ready to switch all HBA drivers over to the new interface. src/Makefile.inc1, lib/Makefile: Add libsbuf. It must be built before libcam, since libcam uses sbuf routines. libcam/Makefile: libcam now depends on libsbuf. libsbuf/Makefile: Add a makefile for libsbuf. This pulls in the sbuf sources from sys/kern. bsd.libnames.mk: Add LIBSBUF. camcontrol/Makefile: Add -lsbuf. Since camcontrol is statically linked, we can't depend on the dynamic linker to pull in libsbuf. camcontrol.c: Use cam_error_print() instead of checking for CAM_SCSI_STATUS_ERROR on every failed CCB. sbuf.9: Change the prototypes for sbuf_cat() and sbuf_cpy() so that the source string is now a const char *. This is more in line wth the standard system string functions, and helps eliminate warnings when dealing with a const source buffer. Fix a typo. cam.c: Add description strings for the various CAM error status values, as well as routines to look up those strings. Add new cam_error_string() and cam_error_print() routines for userland and the kernel. cam.h: Add a new CAM flag, CAM_RETRY_SELTO. Add enumerated types for the various options available with cam_error_print() and cam_error_string(). cam_ccb.h: Add new transfer negotiation structures/types. Change inq_len in the ccb_getdev structure to be "reserved". This field has never been filled in, and will be removed when we next bump the CAM version. cam_debug.h: Fix typo. cam_periph.c: Modularize cam_periph_error(). The SCSI error handling part of cam_periph_error() is now in camperiphscsistatuserror() and camperiphscsisenseerror(). In cam_periph_lock(), increase the reference count on the periph while we wait for our lock attempt to succeed so that the periph won't go away while we're sleeping. cam_xpt.c: Add new transfer negotiation code. (ifdefed out) Add a new function, xpt_path_string(). This is a string/sbuf analog to xpt_print_path(). scsi_all.c: Revamp string handing and error printing code. We now use sbufs for much of the string formatting code. More of that code is shared between userland the kernel. scsi_all.h: Get rid of SS_TURSTART, it wasn't terribly useful in the first place. Add a new error action, SS_REQSENSE. (Send a request sense and then retry the command.) This is useful when the controller hasn't performed autosense for some reason. Change the default actions around a bit. scsi_cd.c, scsi_da.c, scsi_pt.c, scsi_ses.c: SF_RETRY_SELTO -> CAM_RETRY_SELTO. Selection timeouts shouldn't be covered by a sense flag. scsi_pass.[ch]: SF_RETRY_SELTO -> CAM_RETRY_SELTO. Get rid of the last vestiges of a read/write interface. libkern/bsearch.c, sys/libkern.h, conf/files: Add bsearch.c, which is needed for some of the new table lookup routines. aic7xxx_freebsd.c: Define AHC_NEW_TRAN_SETTINGS if CAM_NEW_TRAN_CODE is defined. sbuf.h, subr_sbuf.c: Add the appropriate #ifdefs so sbufs can compile and run in userland. Change sbuf_printf() to use vsnprintf() instead of kvprintf(), which is only available in the kernel. Change the source string for sbuf_cpy() and sbuf_cat() to be a const char *. Add __BEGIN_DECLS and __END_DECLS around function prototypes since they're now exported to userland. kdump/mkioctls: Include stdio.h before cam.h since cam.h now includes a function with a FILE * argument. Submitted by: gibbs (mostly) Reviewed by: jdp, marcel (libsbuf makefile changes) Reviewed by: des (sbuf changes) Reviewed by: ken Notes: svn path=/head/; revision=74840
* Previous commit broke interlock locking for !LK_RETRY case.Boris Popov2001-03-261-2/+3
| | | | Notes: svn path=/head/; revision=74811
* Send the remains (such as I have located) of "block major numbers" toPoul-Henning Kamp2001-03-266-7/+0
| | | | | | | the bit-bucket. Notes: svn path=/head/; revision=74810
* Prevent race condition by using msleep() instead of mtx_unlock()/tsleep().Boris Popov2001-03-261-2/+1
| | | | | | | Reviewed by: alfred Notes: svn path=/head/; revision=74803
* Move the atomic() mbstat.m_drops incrementing to the MGET(HDR) andBosko Milekic2001-03-241-19/+5
| | | | | | | | | | MCLGET macros in order to avoid incrementing the drop count twice. Otherwise, in some cases, we may increment m_drops once in m_mballoc() for example, and increment it again in m_mballoc_wait() if the wait fails. Notes: svn path=/head/; revision=74764
* Use (..., "%s", foo) instead of (..., foo) to avoid a warning about aJohn Baldwin2001-03-241-1/+1
| | | | | | | | non-constant format string when calling kthread_create() to create an ithread. Notes: svn path=/head/; revision=74734
* This is kind of a hack, but it should work. Currently, world is brokenPeter Wemm2001-03-241-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | because libc/rpc/key_call.c references uname(), and ps/print.c also defines uname(), and ps is linked statically. This leads to a symbol clash. The userland uname(3) kinda sucked anyway as the hostname etc was too short. And since the libc rpc interface now uses the utsname.nodename which gets truncated, I was tempted into doing something about it. Create a new userland uname function, called __xuname() which takes an extra argument that allows you to change the size of the fields. uname() becomes a static inline function in sys/utsname.h that passes the extra argument in. struct utsname has its field members expanded by default now in userland. We still provide a 'uname' externally linkable function for things that either think that they ``know'' the utsname format and assume 32 character strings and bypass the include file, or objects that are linked against old libcs. ie: just about every plausible case that I can think of is covered. Should we ever change the default lengths again, a libc major bump should not be required as the size is now passed to the function. XXX the uname(2) in the kernel is for FreeBSD 1.1 binary compatability! All the uname(3) functions that are exported to userland are actually implemented in libc with sysctl. uname(1) uses sysctl directly and does not call uname(3). PR: bin/4688 Notes: svn path=/head/; revision=74729
* Just use the proc lock to protect read accesses to p_pptr rather than theJohn Baldwin2001-03-241-4/+4
| | | | | | | more expensive proctree lock. Notes: svn path=/head/; revision=74728
* Protect p_wmesg and p_wchan with sched_lock while checking for deadlocksJohn Baldwin2001-03-241-0/+3
| | | | | | | with other byte range file locks. Notes: svn path=/head/; revision=74727
* replace calls to non-existant bail() subroutine with calls toAlfred Perlstein2001-03-231-2/+2
| | | | | | | the die() builtin function. Notes: svn path=/head/; revision=74688
* o Actually extract version of interface and store it along with the name.Boris Popov2001-03-221-52/+99
| | | | | | | | | | o Add new parameter to the modlist_lookup() function to perform lookups with strict version matching. o Collapse duplicate code to function(s). Notes: svn path=/head/; revision=74642
* Slightly reorganize code in the linker_load_dependancies() function to makeBoris Popov2001-03-221-54/+52
| | | | | | | codepath more straightforward. Notes: svn path=/head/; revision=74641
* Remove support for old way of handling module dependencies.Boris Popov2001-03-221-35/+18
| | | | | | | Approved by: peter Notes: svn path=/head/; revision=74639
* Make the pseudo-driver for "/dev/fd/*" handle fd's larger than 255.Poul-Henning Kamp2001-03-201-1/+8
| | | | | | | PR: 25936 Notes: svn path=/head/; revision=74523
* Add a KASSERT on unit2minor() so that we catch it if people try to passPoul-Henning Kamp2001-03-201-0/+1
| | | | | | | us unit numbers which doesn't fit in 24 bits. Notes: svn path=/head/; revision=74522
* Fixed breakage of access() in rev.1.164. Wrong credentials were used forBruce Evans2001-03-202-2/+2
| | | | | | | the final path component. Notes: svn path=/head/; revision=74513
* Use the same API as the example code.Peter Wemm2001-03-201-6/+8
| | | | | | | | | | | | | Allow the initial hash value to be passed in, as the examples do. Incrementally hash in the dvp->v_id (using the official api) rather than add it. This seems to help power-of-two predictable filename trees where the filenames repeat on a power-of-two cycle and the directory trees have power-of-two components in it. The simple add then mask was causing things like 12000+ entry collision chains while most other entries have between 0 and 3 entries each. This way seems to improve things. Notes: svn path=/head/; revision=74501
* o Rename "namespace" argument to "attrnamespace" as namespace is a C++Robert Watson2001-03-192-2/+2
| | | | | | | | | | | reserved word. Part 2 of syscalls.master commit to catch rebuilt files. Submitted by: jkh Obtained from: TrustedBSD Project Notes: svn path=/head/; revision=74438
* o Rename "namespace" argument to "attrnamespace" as namespace is a C++Robert Watson2001-03-196-25/+25
| | | | | | | | | | reserved word. Submitted by: jkh Obtained from: TrustedBSD Project Notes: svn path=/head/; revision=74437
* Fix a couple of things in the internal mbuf allocation interface:Bosko Milekic2001-03-171-8/+8
| | | | | | | | | | | | | | | | | | - Make sure that m_mballoc() really doesn't allow over nmbufs mbufs to be allocated from mb_map. In the case where nmbufs-reserved space is not an exact multiple of PAGE_SIZE (which it should be, but anyway...), we hold nmbufs as an absolute maximum which need not ever be reached. - Clean up m_clalloc(); make it more consistent in the sense that the first argument `ncl' really means "the number of clusters ensured to be allocated" and not "the number of pages worth of clusters to be allocated," as was previously the case. This also makes it consistent with m_mballoc() as well as the comment that preceeds it. Reviewed by: jlemon Notes: svn path=/head/; revision=74402
* Use a generic implementation of the Fowler/Noll/Vo hash (FNV hash).Peter Wemm2001-03-171-13/+6
| | | | | | | | | | | | | | | | | | | | Make the name cache hash as well as the nfsnode hash use it. As a special tweak, create an unsigned version of register_t. This allows us to use a special tweak for the 64 bit versions that significantly speeds up the i386 version (ie: int64 XOR int64 is slower than int64 XOR int32). The code layout is a little strange for the string function, but I was able to get between 5 to 10% improvement over the original version I started with. The layout affects gcc code generation choices and this way was fastest on x86 and alpha. Note that 'CPUTYPE=p3' etc makes a fair difference to this. It is around 45% faster with -march=pentiumpro on a p6 cpu. Notes: svn path=/head/; revision=74384
* When doing a recv(.. MSG_WAITALL) for a message which is larger thanJonathan Lemon2001-03-161-0/+6
| | | | | | | | | | | | | | the socket buffer size, the receive is done in sections. After completing a read, call pru_rcvd on the underlying protocol before blocking again. This allows the the protocol to take appropriate action, such as sending a TCP window update to the peer, if the window happened to close because the socket buffer was filled. If the protocol is not notified, a TCP transfer may stall until the remote end sends a window probe. Notes: svn path=/head/; revision=74371
* Kill the 4MB kernel limit dead. [I hope :-)].Peter Wemm2001-03-151-3/+9
| | | | | | | | | | | | | | | | | | For UP, we were using $tmp_stk as a stack from the data section. If the kernel text section grew beyond ~3MB, the data section would be pushed beyond the temporary 4MB P==V mapping. This would cause the trampoline up to high memory to fault. The hack workaround I did was to use all of the page table pages that we already have while preparing the initial P==V mapping, instead of just the first one. For SMP, the AP bootstrap process suffered the same sort of problem and got the same treatment. MFC candidate - this breaks on 4.x just the same.. Thanks to: Richard Todd <rmtodd@ichotolot.servalan.com> Notes: svn path=/head/; revision=74283
* Jake essentially rewrote this. It is not by any stretch of thePeter Wemm2001-03-151-2/+0
| | | | | | | imagination a derivative of what I did before. Notes: svn path=/head/; revision=74282
* Regenerate after rwatson's commit to syscalls.master (rev 1.85)Peter Wemm2001-03-152-2/+2
| | | | Notes: svn path=/head/; revision=74281
* o Change the API and ABI of the Extended Attribute kernel interfaces toRobert Watson2001-03-156-34/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | introduce a new argument, "namespace", rather than relying on a first- character namespace indicator. This is in line with more recent thinking on EA interfaces on various mailing lists, including the posix1e, Linux acl-devel, and trustedbsd-discuss forums. Two namespaces are defined by default, EXTATTR_NAMESPACE_SYSTEM and EXTATTR_NAMESPACE_USER, where the primary distinction lies in the access control model: user EAs are accessible based on the normal MAC and DAC file/directory protections, and system attributes are limited to kernel-originated or appropriately privileged userland requests. o These API changes occur at several levels: the namespace argument is introduced in the extattr_{get,set}_file() system call interfaces, at the vnode operation level in the vop_{get,set}extattr() interfaces, and in the UFS extended attribute implementation. Changes are also introduced in the VFS extattrctl() interface (system call, VFS, and UFS implementation), where the arguments are modified to include a namespace field, as well as modified to advoid direct access to userspace variables from below the VFS layer (in the style of recent changes to mount by adrian@FreeBSD.org). This required some cleanup and bug fixing regarding VFS locks and the VFS interface, as a vnode pointer may now be optionally submitted to the VFS_EXTATTRCTL() call. Updated documentation for the VFS interface will be committed shortly. o In the near future, the auto-starting feature will be updated to search two sub-directories to the ".attribute" directory in appropriate file systems: "user" and "system" to locate attributes intended for those namespaces, as the single filename is no longer sufficient to indicate what namespace the attribute is intended for. Until this is committed, all attributes auto-started by UFS will be placed in the EXTATTR_NAMESPACE_SYSTEM namespace. o The default POSIX.1e attribute names for ACLs and Capabilities have been updated to no longer include the '$' in their filename. As such, if you're using these features, you'll need to rename the attribute backing files to the same names without '$' symbols in front. o Note that these changes will require changes in userland, which will be committed shortly. These include modifications to the extended attribute utilities, as well as to libutil for new namespace string conversion routines. Once the matching userland changes are committed, a buildworld is recommended to update all the necessary include files and verify that the kernel and userland environments are in sync. Note: If you do not use extended attributes (most people won't), upgrading is not imperative although since the system call API has changed, the new userland extended attribute code will no longer compile with old include files. o Couple of minor cleanups while I'm there: make more code compilation conditional on FFS_EXTATTR, which should recover a bit of space on kernels running without EA's, as well as update copyright dates. Obtained from: TrustedBSD Project Notes: svn path=/head/; revision=74273
* Dont call device close and ioctl functions if device has disappeared.Søren Schmidt2001-03-131-2/+5
| | | | | | | Reviewed by: phk Notes: svn path=/head/; revision=74206
* Assert that the process we're trying to enqueue isn't already there.Dag-Erling Smørgrav2001-03-111-0/+21
| | | | Notes: svn path=/head/; revision=74113