572b6878 | 25-May-2016 |
Simon Klinkert <klinkert@webgods.de> |
6940 Cannot unlink directories when over quota Reviewed by: Dan McDonald <danmcd@omniti.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com>
(cherry picked from commit ec54065811488ed8b43181486792
6940 Cannot unlink directories when over quota Reviewed by: Dan McDonald <danmcd@omniti.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com>
(cherry picked from commit ec54065811488ed8b431814867928948fe109299)
show more ...
|
4053e902 | 03-Dec-2015 |
Simon Klinkert <klinkert@webgods.de> |
zev: fix wrong return code in zev_get_checksums
Return EIO if offset > znode size instead of 0 (success)
(cherry picked from commit de5d7d2ae3b023a958df7ca3bb8d40aa9638fb30) |
86dc7a29 | 03-Dec-2015 |
Simon Klinkert <klinkert@webgods.de> |
zev: fix double free in zev_get_checksums()
this fix is related to https://redmine.ob1.de/issues/2920
(cherry picked from commit aafcdfa4fe23b427b0efcbfe7b1950c80ac40251) |
df8caf2d | 23-Nov-2015 |
Simon Klinkert <klinkert@webgods.de> |
further lint fixes
(cherry picked from commit 4ab1323af43e16c3c75773a928cdb4b8a38b6621) |
70a7fac9 | 13-Oct-2015 |
Simon Klinkert <klinkert@webgods.de> |
6314 buffer overflow in dsl_dataset_name
Avoid memory corruptions
(cherry picked from commit 7995736062993a4154a97034093cf22d82cc4990) |
193db0f2 | 12-Oct-2015 |
Simon Klinkert <klinkert@webgods.de> |
nfs4: cannot delete files when filesystem is full
rfs4_op_remove should close file descriptors before calling VOP_REMOVE. Otherwise ZFS won't be able to delete files when we're over quota because v_
nfs4: cannot delete files when filesystem is full
rfs4_op_remove should close file descriptors before calling VOP_REMOVE. Otherwise ZFS won't be able to delete files when we're over quota because v_count > 1 in function zfs_remove().
(cherry picked from commit ab87159a4e7946f0e97eb17590db1cb88d7da9bd)
show more ...
|
ce0d9371 | 28-Sep-2015 |
Arne Jansen <jansen@webgods.de> |
arcwatch implementation
Initial implementation. Adds a new zfs-ioctl ARC_INFO to dump all headers currently in arc. Adds a utility 'arcwatch' to dump the arc and to trace a command to see which buff
arcwatch implementation
Initial implementation. Adds a new zfs-ioctl ARC_INFO to dump all headers currently in arc. Adds a utility 'arcwatch' to dump the arc and to trace a command to see which buffers it needs.
(cherry picked from commit a8c92b49f4e8de856d9e4775e15e4fa90a687664)
show more ...
|
147c1346 | 28-Sep-2015 |
Arne Jansen <jansen@webgods.de> |
6265 speed up mount/umount
(cherry picked from commit 5e982ed9848e902d366ef5f296c7e8a2f75b2455) |
c9e5c7a7 | 21-Oct-2014 |
Saso Kiselkov <saso.kiselkov@nexenta.com> |
NEX-3514 Implement persistent L2ARC Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com> Reviewed by: Josef Sipek <josef.sipek@nexenta.com>
Conflicts:
usr/src/uts/common/fs/zfs/arc.c usr/src/uts/
NEX-3514 Implement persistent L2ARC Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com> Reviewed by: Josef Sipek <josef.sipek@nexenta.com>
Conflicts:
usr/src/uts/common/fs/zfs/arc.c usr/src/uts/common/sys/fs/zfs.h
(cherry picked from commit d5de16744667e32c8dd538e62d90c3a857910804)
show more ...
|
7c44f1d0 | 29-Sep-2015 |
Simon Klinkert <klinkert@webgods.de> |
2402 rnode.r_lkserlock is stupid (NFS4)
The problem is that nfs4_write wants a read lock on r_lkserlock, while nfs4_frlock holds a write lock to it while it calls the server. So every locking attemp
2402 rnode.r_lkserlock is stupid (NFS4)
The problem is that nfs4_write wants a read lock on r_lkserlock, while nfs4_frlock holds a write lock to it while it calls the server. So every locking attempt slows down the writes. If there are sufficiently many processes trying to get the lock, the write() can completely starve, as the implementation of nfs_rw_enter_sig prefers writers over readers.
(cherry picked from commit 346bb56b24009a447af70278afad51d50a52ea4b)
show more ...
|
d3b66d30 | 22-Sep-2015 |
Simon Klinkert <klinkert@webgods.de> |
zev: include current txg in mount/umount events
The origin code was broken because it used dmu_tx_abort instead of dmu_tx_commit. Original commit: 3ade291b7e5d4c5f1
Conflicts:
usr/src/common/zev/
zev: include current txg in mount/umount events
The origin code was broken because it used dmu_tx_abort instead of dmu_tx_commit. Original commit: 3ade291b7e5d4c5f1
Conflicts:
usr/src/common/zev/zev.h usr/src/uts/common/sys/fs/zev.h
(cherry picked from commit e1c612e3f2af15ccdb7fdcfefe9c16f71dd315d1)
show more ...
|
5d3744fd | 17-Sep-2015 |
Simon Klinkert <klinkert@webgods.de> |
Revert "zev: include current txg in mount/umount events"
This reverts commit 3ade291b7e5d4c5f1f81cb224a1962486c29dbc6.
Commit breaks the OS. zpool hangs due to hundreds of uncommited txg's
Conflic
Revert "zev: include current txg in mount/umount events"
This reverts commit 3ade291b7e5d4c5f1f81cb224a1962486c29dbc6.
Commit breaks the OS. zpool hangs due to hundreds of uncommited txg's
Conflicts:
usr/src/common/zev/zev.h usr/src/uts/common/sys/fs/zev.h
(cherry picked from commit 224f6666f744195596ef7492186a18b37f8c55e1)
show more ...
|
564e7d37 | 10-Aug-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: workaround: mount cb bails for failed mount
The zev mount callback got called for failed mounts, which then crashed the system when the callback tried to access zfsvfs data. A fix in zfs_mount(
zev: workaround: mount cb bails for failed mount
The zev mount callback got called for failed mounts, which then crashed the system when the callback tried to access zfsvfs data. A fix in zfs_mount() was written, but since updating the zfs module is painful we also work around this problem from inside the callback, so that only the zev module needs to be updated.
Seperate commit so it can be backported to earlier titanic releases.
(cherry picked from commit 06a9f6b8e3d58ecf30294ed84afa5b700aed283d)
show more ...
|
f0fa03f5 | 10-Aug-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: no event for failed mounts
The zev mount callback was called even if zfs_mount() failed. The callback then tried to access parts of the vfs struct that were not available, thus crashin
zev: bugfix: no event for failed mounts
The zev mount callback was called even if zfs_mount() failed. The callback then tried to access parts of the vfs struct that were not available, thus crashing the system. zfs_umount() does not suffer from the same problem, no fix needed there.
(cherry picked from commit 8d80322d1dea3d00434039a71e519c445af94a3c)
show more ...
|
94bf38f1 | 07-Aug-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: include current txg in mount/umount events
(cherry picked from commit 3ade291b7e5d4c5f1f81cb224a1962486c29dbc6) |
a287bd3a | 20-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: lock zfsvfs for znode operations
Akin to zfs' other znode ops, zev now uses (a modified version of) ZFS_ENTER, ZFS_VERIFY_ZP and ZFS_EXIT to protect against operations on unmounted object sets.
zev: lock zfsvfs for znode operations
Akin to zfs' other znode ops, zev now uses (a modified version of) ZFS_ENTER, ZFS_VERIFY_ZP and ZFS_EXIT to protect against operations on unmounted object sets. This only concerns the get_checksums ioctl. All other znode ops are callbacks from inside zfs znode ops, so the locks were already held.
(cherry picked from commit f8d4f0f619a3e7597825fb95d1aa6dc322694d3c)
show more ...
|
819a7669 | 20-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
getgen: lock zfsvfs for znode operations
Akin to zfs' other znode ops, getgen now uses (a modified version of) ZFS_ENTER, ZFS_VERIFY_ZP and ZFS_EXIT to protect against operations on unmounted object
getgen: lock zfsvfs for znode operations
Akin to zfs' other znode ops, getgen now uses (a modified version of) ZFS_ENTER, ZFS_VERIFY_ZP and ZFS_EXIT to protect against operations on unmounted object sets.
(cherry picked from commit 59b452a564ddd610b2b9998d0f97f4f78612952f)
show more ...
|
d5b96be3 | 10-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: device nodes remained for delete queues
devfs_clean() is used to remove old device nodes. It requires a dev_info_t as a starting point. The zev instance's dev_info_t was used but didn
zev: bugfix: device nodes remained for delete queues
devfs_clean() is used to remove old device nodes. It requires a dev_info_t as a starting point. The zev instance's dev_info_t was used but didn't work. ddi_root_node() is now used, which returns top_devinfo.
(cherry picked from commit 85dcc477b9e19a46828540f27460c39ec7d9acb3)
show more ...
|
1756dea7 | 08-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: fix: tmpqueues should be initially empty
When creating temporary queues dynamically, (by opening the tmpqueue device) the resulting queue should start empty and not contain any old events.
(ch
zev: fix: tmpqueues should be initially empty
When creating temporary queues dynamically, (by opening the tmpqueue device) the resulting queue should start empty and not contain any old events.
(cherry picked from commit e61588a30d771b9cef4272cc070900ddfca2caf1)
show more ...
|
6450d95e | 08-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: dynamically create temporary queues
The zev driver can now create new ephemeral queues in the fly.
When the tmpqueue device is opened, a new non-persistent queue is created and the userland ca
zev: dynamically create temporary queues
The zev driver can now create new ephemeral queues in the fly.
When the tmpqueue device is opened, a new non-persistent queue is created and the userland can immediatly use it as though the tmpqueue device itself was a valid queue device. As soon as the device is closed the temporary queue is removed.
This should make using tmp queues easier. It is no longer necessary to find or generate a free queue name, and tmp queues opened via the tmpqueue device can not be orphaned - they are already opened when they are created. Using the old method a userland process might crash or forget about a tmp queue it has created - which would then remain in the queue list indefinitly.
(cherry picked from commit 441d11320a78072d7e6d87230d4271396bf53648)
show more ...
|
b909fa07 | 07-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: device files are removed correctly
When a queue is removed the corresponding /devices special files were not correctly removed aswell. To achieve that, it is necessary to call devfs_cl
zev: bugfix: device files are removed correctly
When a queue is removed the corresponding /devices special files were not correctly removed aswell. To achieve that, it is necessary to call devfs_clean() using the DV_CLEAN_FORCE flag. This is now done and the device files dissapear as one would expect.
(cherry picked from commit c9ca1789b5c8ee2493129f0c6ba97999e110d893)
show more ...
|
9ae8ebd1 | 06-Jul-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: missing mutex protection
In certain circuumstances zev_hold_queue() was called without acquiring the necessary mutex first. I have not found any code in zevadm or beaverd that might ac
zev: bugfix: missing mutex protection
In certain circuumstances zev_hold_queue() was called without acquiring the necessary mutex first. I have not found any code in zevadm or beaverd that might actually trigger this bug, though.
(cherry picked from commit 2999edecce9b37a4cb1afce74f711ecc92a24d35)
show more ...
|
ec4d6322 | 30-Jun-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: some queues were blocking too early
Under certain conditions, zev queues would block too soon or for the wrong queues: if the max queue limit was reached and there was a queue with the
zev: bugfix: some queues were blocking too early
Under certain conditions, zev queues would block too soon or for the wrong queues: if the max queue limit was reached and there was a queue with the block flag, zev would block new messages, even if the blocking queue wasn't full.
(cherry picked from commit b0e9cea3504949d7ad8e034834f531716cb8d908)
show more ...
|
f5ef1346 | 29-Jun-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: use devfs_cleanup to remove unused entries
Old device files under /devices/pseudo are no longer cleaned up when the queue is no longer used. Calling devfs_cleanup() was suggested to trigger th
zev: use devfs_cleanup to remove unused entries
Old device files under /devices/pseudo are no longer cleaned up when the queue is no longer used. Calling devfs_cleanup() was suggested to trigger this.
(cherry picked from commit 62b114c4754a2ea0f22c1bc9d1455494a4010f99)
show more ...
|
dc1d6f1a | 29-Jun-2015 |
Andreas Jaekel <jaekel@strato-rz.de> |
zev: bugfix: fix modinfo version string
The modinfo string has a marco to show the zev modules version information. That macro was not correctly expanded and the macro's name was shown instead.
(c
zev: bugfix: fix modinfo version string
The modinfo string has a marco to show the zev modules version information. That macro was not correctly expanded and the macro's name was shown instead.
(cherry picked from commit 87604a728c4afb2050560da461653ca42fc38944)
show more ...
|