summaryrefslogtreecommitdiffstats
path: root/sys/geom/gate/g_gate.c
Commit message (Collapse)AuthorAgeFilesLines
* Simplify loops.pjd2010-03-181-20/+10
|
* Please welcome HAST - Highly Avalable Storage.pjd2010-02-181-71/+119
| | | | | | | | | | | | | | | | | | | | | | HAST allows to transparently store data on two physically separated machines connected over the TCP/IP network. HAST works in Primary-Secondary (Master-Backup, Master-Slave) configuration, which means that only one of the cluster nodes can be active at any given time. Only Primary node is able to handle I/O requests to HAST-managed devices. Currently HAST is limited to two cluster nodes in total. HAST operates on block level - it provides disk-like devices in /dev/hast/ directory for use by file systems and/or applications. Working on block level makes it transparent for file systems and applications. There in no difference between using HAST-provided device and raw disk, partition, etc. All of them are just regular GEOM providers in FreeBSD. For more information please consult hastd(8), hastctl(8) and hast.conf(5) manual pages, as well as http://wiki.FreeBSD.org/HAST. Sponsored by: FreeBSD Foundation Sponsored by: OMCnet Internet Service GmbH Sponsored by: TransIP BV
* (S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument.antoine2009-12-281-1/+1
| | | | | | | | | Fix some wrong usages. Note: this does not affect generated binaries as this argument is not used. PR: 137213 Submitted by: Eygene Ryabinkin (initial version) MFC after: 1 month
* Bump copyright year.pjd2006-09-081-1/+1
|
* Use __FBSDID in .c files.pjd2006-09-081-2/+3
|
* Fix problems with destroy and forcible destroy functionality:pjd2006-09-051-73/+45
| | | | | | | | | | - hold/release device in start/done routines, this will probably slow down things a bit, but previous code was racy; - only release device if g_gate_destroy() failed - if it succeeded device is dead and there is nothing to release; - various other changes which makes forcible destruction reliable. MFC after: 3 days
* Remove trailing spaces.pjd2006-02-011-1/+1
|
* Normalize a significant number of kernel malloc type names:rwatson2005-10-311-1/+1
| | | | | | | | | | | | | | | | | | | - Prefer '_' to ' ', as it results in more easily parsed results in memory monitoring tools such as vmstat. - Remove punctuation that is incompatible with using memory type names as file names, such as '/' characters. - Disambiguate some collisions by adding subsystem prefixes to some memory types. - Generally prefer lower case to upper case. - If the same type is defined in multiple architecture directories, attempt to use the same name in additional cases. Not all instances were caught in this change, so more work is required to finish this conversion. Similar changes are required for UMA zone names.
* Add CANCEL command which allows to remove one request from the queue orpjd2005-07-081-1/+43
| | | | | | | | all requests from the queue if request number is not given. Bump version number. Approved by: re (scottl)
* Update copyright in files changed this year.pjd2005-02-161-1/+1
|
* Remove mutex asserion from g_gate_find(). We don't want g_gate_list_mtxpjd2005-02-161-1/+0
| | | | mutex to be held here, because we want speed here.
* Remove TDP_GEOM flag from thread after ggate device creation.pjd2005-02-161-0/+7
| | | | | | | This flag means "wait for all pending requests before returning to userland". There are pending events for sure, because we just created new provider and other classes want to taste it, but we cannot answer on I/O requests until we're here.
* Fix typo. We want to unlock mutex here.pjd2005-02-121-1/+1
| | | | | Submitted by: Andreas Kohn <andreas.kohn@gmail.com> MFC after: 1 week
* - Remove g_gate_hold()/g_gate_release() from start/done paths. It savespjd2005-02-091-54/+36
| | | | | | | | | | 4 mutex operations per I/O requests. - Use only one mutex to protect both (incoming and outgoing) queue. As MUTEX_PROFILING(9) shows, there is no big contention for this lock. - Protect sc_queue_count with queue mutex, instead of doing atomic operations on it. - Remove DROP_GIANT()/PICKUP_GIANT() - ggate is marked as MPSAFE and no Giant there.
* - Use bioq_insert_tail()/bioq_insert_head() instead of bioq_disksort().pjd2005-02-051-3/+7
| | | | | | - Improve mediasize checking. MFC after: 1 week
* - Add missing Giant drop before acquiring the topology lock.pjd2004-11-231-3/+6
| | | | - Move DROP_GIANT()/PICKUP_GIANT() to g_gate_ioctl().
* Unlock g_gate_list_mtx mutex when we cannot allocate unit number.pjd2004-10-021-0/+1
| | | | | | | MT5 candidate. PR: kern/72253 Submitted by: Ivan Voras <ivoras@fer.hr>
* Tag all geom classes in the tree with a version number.phk2004-08-081-0/+1
|
* Do a pass over all modules in the kernel and make them return EOPNOTSUPPphk2004-07-151-0/+1
| | | | | | | | for unknown events. A number of modules return EINVAL in this instance, and I have left those alone for now and instead taught MOD_QUIESCE to accept this as "didn't do anything".
* Remove unused argument for good.pjd2004-07-011-2/+2
|
* Introduce a hack that will make geom_gate to work with read-only mounts.pjd2004-06-271-0/+9
| | | | | | | | Now, when trying to mount file system in read-only mode it tries to opened a device for writting to be able to update to read-write mode latter. Ehh. Discussed with: phk
* Don't hold topology lock while calling g_gate_release().pjd2004-06-211-0/+2
| | | | Found by: KASSERT()
* Do the dreaded s/dev_t/struct cdev */phk2004-06-161-2/+2
| | | | Bump __FreeBSD_version accordingly.
* Close some small wakeup<->msleep races.pjd2004-05-051-2/+4
|
* Turn off debugging by default.pjd2004-05-031-1/+1
|
* - Hold g_gate_list_mtx lock while generating/checking unit number.pjd2004-05-031-5/+9
| | | | | | Found by: mtx_assert() g_gate.c:273 - Set command before returning to userland with ENOMEM error value. Found by: assert() ggatel.c:108
* Make it compile on 64-bit architectures.pjd2004-05-021-14/+14
| | | | | The biggest issue was that 16-bit atomic operations aren't supported on all architectures.
* Kernel bits of GEOM Gate.pjd2004-04-301-0/+632
OpenPOWER on IntegriCloud