summaryrefslogtreecommitdiffstats
path: root/sys/cddl/compat/opensolaris
Commit message (Collapse)AuthorAgeFilesLines
...
* Add task structure to zio and use it instead of allocating one.pjd2010-05-162-6/+73
| | | | | | | | | This eliminates the only place where we can sleep when calling zio_interrupt(). As a side-effect this can actually improve performance a little as we allocate one less thing for every I/O. Prodded by: kib MFC after: 1 week
* Import OpenSolaris revision 7837:001de5627df3mm2010-05-131-1/+5
| | | | | | | | | | | | | | | | | | | It includes the following changes: - parallel reads in traversal code (Bug ID 6333409) - faster traversal for zfs send (Bug ID 6418042) - traversal code cleanup (Bug ID 6725675) - fix for two scrub related bugs (Bug ID 6729696, 6730101) - fix assertion in dbuf_verify (Bug ID 6752226) - fix panic during zfs send with i/o errors (Bug ID 6577985) - replace P2CROSS with P2BOUNDARY (Bug ID 6725680) List of OpenSolaris Bug IDs: 6333409, 6418042, 6757112, 6725668, 6725675, 6725680, 6725698, 6729696, 6730101, 6752226, 6577985, 6755042 Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (multiple Bug IDs) MFC after: 1 week
* I added vfs_lowvnodes event, but it was only used for a short while and nowpjd2010-05-111-1/+1
| | | | | | it is totally unused. Remove it. MFC after: 3 days
* Partially MFp4 #176265 by pjd@:delphij2010-04-191-5/+12
| | | | | | | | | | | | - Properly initialize and destroy system_taskq. - Add a dummy implementation of taskq_create_proc(). Note: We do not currently use system_taskq in ZFS so this is mostly a no-op at this time. Proper system_taskq initialization is required by newer ZFS code. Ok'ed by: pjd MFC after: 2 weeks
* On FreeBSD, time_t is 64-bit for all platforms except i386 and powerpc,delphij2010-01-251-0/+5
| | | | | | | | | | | | | | where the type is 32-bit. ZFS can handle 64-bit timestamp internally but zfs_setattr() would check if the time value can fit, we change the checking macros to match 64-bit timestamp if the platform supports it. This change has some downsides like, while you can import zfs on 32-bit platforms, the timestamp would overflow if they are out of the range. This fixes the Y2.038K issue on platforms using 64-bit timestamps. Reviewed by: pjd MFC after: 1 month
* - zfs_zaccess() can handle VAPPEND too, so map V_APPEND to VAPPEND and callpjd2009-10-301-0/+2
| | | | | | | | | | | | | zfs_access() instead of vaccess() in this case as well. - If VADMIN is specified with another V* flag (unlikely) call both zfs_access() and vaccess() after spliting V* flags. This fixes "dirtying snapshot!" panic. PR: kern/139806 Reported by: Carl Chave <carl@chave.us> In co-operation with: jh MFC after: 3 days
* Allow file system owner to modify system flags if securelevel permits.pjd2009-10-082-2/+6
| | | | MFC after: 3 days
* File system owner is when uid matches and jail matches.pjd2009-10-081-3/+2
| | | | MFC after: 3 days
* - Mount ZFS snapshots with MNT_IGNORE flag, so they are not visible in regularpjd2009-09-142-36/+35
| | | | | | | | | | df(1) and mount(8) output. This is a bit smilar to OpenSolaris and follows ZFS route of not listing snapshots by default with 'zfs list' command. - Add UPDATING entry to note that ZFS snapshots are no longer visible in mount(8) and df(1) output by default. Reviewed by: kib MFC after: 3 days
* Lock Giant around vn_open_cred().kib2009-09-081-2/+4
| | | | | | | | Remove innocent unnecessary call to NDFREE(). Reported by: marcel Reviewed and tested by: pjd MFC after: 3 days
* Defer thread start until we set priority.pjd2009-09-071-1/+3
| | | | | Reviewed by: kib MFC after: 3 days
* - Avoid holding mutex around M_WAITOK allocations.pjd2009-09-071-6/+26
| | | | | | - Add locking for mnt_opt field. MFC after: 1 week
* - Hide ZFS kernel threads under zfskern process.pjd2009-08-231-9/+8
| | | | | | - Use better (shorter) threads names: 'zvol:worker zvol/tank/vol00' -> 'zvol tank/vol00' 'vdev:worker da0' -> 'vdev da0'
* - Give minclsyspri and maxclsyspri real values (consulted with kmacy).pjd2009-08-232-4/+16
| | | | - Honour 'pri' argument for thread_create().
* Our libc doesn't implement control method for XDR (only kernel does) and itpjd2009-08-201-0/+70
| | | | | | | | | will always return failure. Fix this by bringing userland implementation of xdrmem_control() back. This allow 'zpool import' to work again. Reported by: Thomas Backman <serenity@exscape.org> Reviewed by: kmacy Approved by: re (kib)
* Manage asynchronous vnode release just like Solaris.pjd2009-08-171-1/+0
| | | | | Discussed with: kmacy Approved by: re (kib)
* Remove OpenSolaris taskq port (it performs very poorly in our kernel) andpjd2009-08-173-223/+135
| | | | | | | | replace it with wrappers around our taskqueue(9). To make it possible implement taskqueue_member() function which returns 1 if the given thread was created by the given taskqueue. Approved by: re (kib)
* Remove files that are no longer used.pjd2009-08-171-112/+0
| | | | | Discussed with: kmacy Approved by: re (kib)
* Remove CDDL warning.trasz2009-08-131-4/+0
| | | | Approved by: re (kib), core
* Add new msleep(9) flag PBDY that shall be specified together withkib2009-07-141-1/+1
| | | | | | | | | | | | PCATCH, to indicate that thread shall not be stopped upon receipt of SIGSTOP until it reaches the kernel->usermode boundary. Also change thread_single(SINGLE_NO_EXIT) to only stop threads at the user boundary unconditionally. Tested by: pho Reviewed by: jhb Approved by: re (kensmith)
* O_NOFOLLOW shall be in flags, not in cmode.kib2009-06-221-3/+2
| | | | Noted by: bde
* Add another flags argument to vn_open_cred. Use it to specify that somekib2009-06-212-2/+3
| | | | | | | | | | | | | | vn_open_cred invocations shall not audit namei path. In particular, specify VN_OPEN_NOAUDIT for dotdot lookup performed by default implementation of vop_vptocnp, and for the open done for core file. vn_fullpath is called from the audit code, and vn_open there need to disable audit to avoid infinite recursion. Core file is created on return to user mode, that, in particular, happens during syscall return. The creation of the core file is audited by direct calls, and we do not want to overwrite audit information for syscall. Reported, reviewed and tested by: rwatson
* Rename the host-related prison fields to be the same as the host.*jamie2009-06-131-1/+1
| | | | | | | parameters they represent, and the variables they replaced, instead of abbreviated versions of them. Approved by: bz (mentor)
* Place hostnames and similar information fully under the prison system.jamie2009-05-292-3/+4
| | | | | | | | | | | | | | | | | The system hostname is now stored in prison0, and the global variable "hostname" has been removed, as has the hostname_mtx mutex. Jails may have their own host information, or they may inherit it from the parent/system. The proper way to read the hostname is via getcredhostname(), which will copy either the hostname associated with the passed cred, or the system hostname if you pass NULL. The system hostname can still be accessed directly (and without locking) at prison0.pr_host, but that should be avoided where possible. The "similar information" referred to is domainname, hostid, and hostuuid, which have also become prison parameters and had their associated global variables removed. Approved by: bz (mentor)
* Reverse the logic for ADAPTIVE_SX option and enable it by default.attilio2009-05-292-4/+4
| | | | | | | | | | | | | | | | | | | | | | Introduce for this operation the reverse NO_ADAPTIVE_SX option. The flag SX_ADAPTIVESPIN to be passed to sx_init_flags(9) gets suppressed and the new flag, offering the reversed logic, SX_NOADAPTIVE is added. Additively implements adaptive spininning for sx held in shared mode. The spinning limit can be handled through sysctls in order to be tuned while the code doesn't reach the release, after which time they should be dropped probabilly. This change has made been necessary by recent benchmarks where it does improve concurrency of workloads in presence of high contention (ie. ZFS). KPI breakage is documented by __FreeBSD_version bumping, manpage and UPDATING updates. Requested by: jeff, kmacy Reviewed by: jeff Tested by: pho
* Change license to more bori^Wadul^Wcanonical.trasz2009-05-262-22/+22
| | | | Submitted by: rwatson@
* MFp4 changes neccessary for NFSv4 ACLs support in ZFS. This is mostlytrasz2009-05-262-0/+255
| | | | | | | | | | | about removing a few #ifdefs and providing compatibility wrappers and VOP implementations to get and set an ACL; ZFS does ACL enforcement all by itself. Note that the VOPs are ifdefed out for now, so this change should be a no-op. Reviewed by: pjd
* Don't allow non-owner to set SUID bit on a file. It doesn't maketrasz2009-05-241-0/+8
| | | | | | | any difference now, but in NFSv4 ACLs, there is write_acl permission, which also affects mode changes. Reviewed by: pjd
* enable adaptive spinning on zfs lockskmacy2009-05-162-4/+4
|
* Remove the thread argument from the FSD (File-System Dependent) parts ofattilio2009-05-112-5/+4
| | | | | | | | | | | | | | | | | the VFS. Now all the VFS_* functions and relating parts don't want the context as long as it always refers to curthread. In some points, in particular when dealing with VOPs and functions living in the same namespace (eg. vflush) which still need to be converted, pass curthread explicitly in order to retain the old behaviour. Such loose ends will be fixed ASAP. While here fix a bug: now, UFS_EXTATTR can be compiled alone without the UFS_EXTATTR_AUTOSTART option. VFS KPI is heavilly changed by this commit so thirdy parts modules needs to be recompiled. Bump __FreeBSD_version in order to signal such situation.
* Introduce a new virtualization container, provisionally named vprocg, to holdzec2009-05-082-1/+4
| | | | | | | | | | | | | | | | | | | | | | virtualized instances of hostname and domainname, as well as a new top-level virtualization struct vimage, which holds pointers to struct vnet and struct vprocg. Struct vprocg is likely to become replaced in the near future with a new jail management API import. As a consequence of this change, change struct ucred to point to a struct vimage, instead of directly pointing to a vnet. Merge vnet / vimage / ucred refcounting infrastructure from p4 / vimage branch. Permit kldload / kldunload operations to be executed only from the default vimage context. This change should have no functional impact on nooptions VIMAGE kernel builds. Reviewed by: bz Approved by: julian (mentor)
* move VN_RELE_ASYNC to the compatibility layer with the rest of the VN_* defineskmacy2009-05-071-0/+1
|
* Introduce the extensible jail framework, using the same "name=value"jamie2009-04-291-1/+1
| | | | | | | | | | | | | | interface as nmount(2). Three new system calls are added: * jail_set, to create jails and change the parameters of existing jails. This replaces jail(2). * jail_get, to read the parameters of existing jails. This replaces the security.jail.list sysctl. * jail_remove to kill off a jail's processes and remove the jail. Most jail parameters may now be changed after creation, and jails may be set to exist without any attached processes. The current jail(2) system call still exists, though it is now a stub to jail_set(2). Approved by: bz (mentor)
* Remove VOP_LEASE and supporting functions. This hasn't been used sincerwatson2009-04-101-1/+0
| | | | | | | | | | | | | | the removal of NQNFS, but was left in in case it was required for NFSv4. Since our new NFSv4 client and server can't use it for their requirements, GC the old mechanism, as well as other unused lease- related code and interfaces. Due to its impact on kernel programming and binary interfaces, this change should not be MFC'd. Proposed by: jeff Reviewed by: jeff Discussed with: rmacklem, zach loafman @ isilon
* Extend the "vfsopt" mount options for more general use. Make structjamie2009-03-021-22/+3
| | | | | | | | | | | | | | | | vfsopt and the vfs_buildopts function public, and add some new fields to struct vfsopt (pos and seen), and new functions vfs_getopt_pos and vfs_opterror. Further extend the interface to allow reading options from the kernel in addition to sending them to the kernel, with vfs_setopt and related functions. While this allows the "name=value" option interface to be used for more than just FS mounts (planned use is for jails), it retains the current "vfsopt" name and <sys/mount.h> requirement. Approved by: bz (mentor)
* Add memmove() to the kernel, making the kernel compile with Clang.ed2009-02-281-4/+0
| | | | | | | | | | | | When copying big structures, LLVM generates calls to memmove(), because it may not be able to figure out whether structures overlap. This caused linker errors to occur. memmove() is now implemented using bcopy(). Ideally it would be the other way around, but that can be solved in the future. On ARM we don't do add anything, because it already has memmove(). Discussed on: arch@ Reviewed by: rdivacky
* MFp4: Remove assertion that is no longer valid - we now use VOP_CLOSE() inpjd2008-11-291-1/+0
| | | | more places (ie vdev_file.c).
* Fix locking (file descriptor table and Giant around VFS).pjd2008-11-252-18/+43
| | | | | Most submitted by: kib Reviewed by: kib
* Don't use PRIV_ROOT. Here we check if user can share ZFS file system, sopjd2008-11-231-2/+1
| | | | | | PRIV_NFS_DAEMON seems best choice. Discussed with: rwatson
* Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.pjd2008-11-1732-689/+811
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bring huge amount of changes, I'll enumerate only user-visible changes: - Delegated Administration Allows regular users to perform ZFS operations, like file system creation, snapshot creation, etc. - L2ARC Level 2 cache for ZFS - allows to use additional disks for cache. Huge performance improvements mostly for random read of mostly static content. - slog Allow to use additional disks for ZFS Intent Log to speed up operations like fsync(2). - vfs.zfs.super_owner Allows regular users to perform privileged operations on files stored on ZFS file systems owned by him. Very careful with this one. - chflags(2) Not all the flags are supported. This still needs work. - ZFSBoot Support to boot off of ZFS pool. Not finished, AFAIK. Submitted by: dfr - Snapshot properties - New failure modes Before if write requested failed, system paniced. Now one can select from one of three failure modes: - panic - panic on write error - wait - wait for disk to reappear - continue - serve read requests if possible, block write requests - Refquota, refreservation properties Just quota and reservation properties, but don't count space consumed by children file systems, clones and snapshots. - Sparse volumes ZVOLs that don't reserve space in the pool. - External attributes Compatible with extattr(2). - NFSv4-ACLs Not sure about the status, might not be complete yet. Submitted by: trasz - Creation-time properties - Regression tests for zpool(8) command. Obtained from: OpenSolaris
* Remove definition of KMEM_DEBUG accidentally brought in by latest DTracerodrigc2008-11-051-2/+0
| | | | | | import. Noticed by: thompsa
* Merge latest DTrace changes from Perforce.rodrigc2008-11-053-5/+13
|
* Introduce accmode_t. This is required for NFSv4 ACLs - it will be neccessarytrasz2008-10-282-5/+5
| | | | | | | to add more V* constants, and the variables changed by this patch were often being assigned to mode_t variables, which is 16 bit. Approved by: rwatson (mentor)
* Mips needs the same treatment for atomic_or_8 as the other RISCyimp2008-09-182-2/+4
| | | | architectures.
* Decontextualize vfs_busy(), vfs_unbusy() and vfs_mount_alloc() functions.attilio2008-08-311-3/+3
| | | | | | Manpages are updated accordingly. Tested by: Diego Sardina <siarodx at gmail dot com>
* Ensure that the padding calcualtion doesn't return a negative value.scottl2008-08-291-1/+2
| | | | | Submitted by: kib Approved by: jb
* Decontextualize the couplet VOP_GETATTR / VOP_SETATTR as the passed threadattilio2008-08-281-2/+1
| | | | | | was always curthread and totally unuseful. Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com>
* We want to check new options given, not the current ones.pjd2008-07-211-1/+1
| | | | This fixes 'zpool import -o <mntopt> <name>' not working properly.
* Remove redundant redeclaration of 'zone_drain'.bz2008-05-241-1/+0
|
* Messing with the endian defines breaks the use of other FreeBSD headers.jb2008-05-231-44/+0
|
OpenPOWER on IntegriCloud