History log of /dragonfly/sys/vfs/smbfs/smbfs_vfsops.c (Results 1 – 25 of 53)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1
# 00369c4a 14-Feb-2020 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Rejigger mount code to add vfs_flags in struct vfsops

* Rejigger the mount code so we can add a vfs_flags field to vfsops,
which mount_init() has visibility to.

* Allows nullfs to flag t

kernel - Rejigger mount code to add vfs_flags in struct vfsops

* Rejigger the mount code so we can add a vfs_flags field to vfsops,
which mount_init() has visibility to.

* Allows nullfs to flag that its mounts do not need a syncer thread.
Previously nullfs would destroy the syncer thread after the
fact.

* Improves dsynth performance (it does lots of nullfs mounts).

show more ...


Revision tags: v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc
# d8b10ae3 02-Dec-2016 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Fix smbfs readdir and umount

* Fix a bug in smbfs's readdir that was causing an empty list and also
a later deadlock.

* Fix a bug in smbfs's umount that was panicing the machine.


Revision tags: v4.6.1
# fd74079f 16-Oct-2016 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Reduce excessive inode hash table allocations

* Reduce excessive inode hash table allocations in various filesystems
(primarily ufs). Introduce vfs_inodehashsize() to calculate a reasona

kernel - Reduce excessive inode hash table allocations

* Reduce excessive inode hash table allocations in various filesystems
(primarily ufs). Introduce vfs_inodehashsize() to calculate a reasonable
hash table size instead of using 'maxvnodes'.

* The new formula is to generally use maxvnodes / 2 (2 x stacking for the
chained hash table). When maxvnodes is large we use maxvnodes / 4, and
if maxvnodes is very large (> 1M vnodes) we use maxvnodes / 8. This
significantly reduces the amount of kernel memory used when mounting
ufs, ext2fs, hpfs, isofs, msdosfs, nfs, ntfs, and smbfs filesystems.

show more ...


# 9629eb35 16-Oct-2016 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Rename desiredvnodes to maxvnodes, fix deadlock

* Rename the kernel variable 'desiredvnodes' to 'maxvnodes' to match
the sysctl name (which has always been 'maxvnodes'), and to make the

kernel - Rename desiredvnodes to maxvnodes, fix deadlock

* Rename the kernel variable 'desiredvnodes' to 'maxvnodes' to match
the sysctl name (which has always been 'maxvnodes'), and to make the
code more readable.

* Probable fix to a rare mount/umount deadlock which can occur in two
situations (1) When a large number of mounts and unmounts are running
concurrently, and (2) During a umount -a, shutdown, or reboot.

* Considered minor, normal use cases will not reproduce this bug. Only
synth or poudriere can generate the mount/umount traffic necessary to
reproduce this bug.

* Also fixes a minor kernel memory leak of the mount structure which can
occur when a 'df' or filesystem sync races a umount. Also minor.

Reported-by: marino (mount race)

show more ...


# 4168cfe8 29-Sep-2016 zrj <rimvydas.jasinskas@gmail.com>

kernel/smbfs: Fix type mismatches for smbfs_pbuf_freecnt.

Mostly used for getpbuf_kva() that takes int*.
Noticed while playing with -flto on LINT64 kernel configuration.


Revision tags: v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0
# 2f0acc22 17-Jul-2016 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Improve physio performance

* See http://apollo.backplane.com/DFlyMisc/nvme_sys03.txt

* Hash the pbuf system. This chops down spin-lock collisions
at high transaction rates (>150K IOPS)

kernel - Improve physio performance

* See http://apollo.backplane.com/DFlyMisc/nvme_sys03.txt

* Hash the pbuf system. This chops down spin-lock collisions
at high transaction rates (>150K IOPS) by 1000x.

* Implement a pbuf with pre-allocated kernel memory that we
copy into, avoiding page table manipulations and thus
avoiding system-wide invltlb/invlpg IPIs.

* This increases NVMe IOPS tests with three cards from
150K-200K IOPS to 950K IOPS using physio (random read,
4K blocks, from urandom-filled partition, with many
process threads, from 3 NVMe cards in parallel).

* Further adjustments to the vkernel build.

show more ...


Revision tags: v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0
# 2f3e94be 05-Oct-2014 Sascha Wildner <saw@online.de>

kernel/smbfs: Tabify a few lines.


# 63bae95b 05-Oct-2014 Sascha Wildner <saw@online.de>

kernel: Remove some dead code.

While here, also remove an unnecessary NULL check in smbfs (M_WAITOK is used)
and use M_ZERO instead of an explicit bzero().

Submitted-by: Edward O'Callaghan <eocalla

kernel: Remove some dead code.

While here, also remove an unnecessary NULL check in smbfs (M_WAITOK is used)
and use M_ZERO instead of an explicit bzero().

Submitted-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>

show more ...


Revision tags: v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1
# 3fb00659 11-Jan-2014 Sascha Wildner <saw@online.de>

kernel/smbfs: Remove dead code.


Revision tags: v3.6.0, v3.7.1, v3.6.0rc, v3.7.0
# ee173d09 20-Oct-2013 Sascha Wildner <saw@online.de>

kernel - Rewrite vnode ref-counting code to improve performance

* Rewrite the vnode ref-counting code and modify operation to not
immediately VOP_INACTIVE a vnode when its refs drops to 0. By
d

kernel - Rewrite vnode ref-counting code to improve performance

* Rewrite the vnode ref-counting code and modify operation to not
immediately VOP_INACTIVE a vnode when its refs drops to 0. By
doing so we avoid cycling vnodes through exclusive locks when
temporarily accessing them (such as in a path lookup). Shared
locks can be used throughout.

* Track active/inactive vnodes a bit differently, keep track of
the number of vnodes that are still active but have zero refs,
and rewrite the vnode freeing code to use the new statistics
to deactivate cached vnodes.

show more ...


Revision tags: v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2, v3.2.1, v3.2.0, v3.3.0
# 74d62460 15-Sep-2012 Matthew Dillon <dillon@apollo.backplane.com>

kernel - remove bounds on buffer cache nbuf count for 64-bit

* Remove arbitrary 1GB buffer cache limitation

* Adjusted numerous 'int' fields to 'long'. Even though nbuf is not
likely to exceed 2

kernel - remove bounds on buffer cache nbuf count for 64-bit

* Remove arbitrary 1GB buffer cache limitation

* Adjusted numerous 'int' fields to 'long'. Even though nbuf is not
likely to exceed 2 billion buffers, byte calculations using the
variable began overflowing so just convert that and various other
variables to long.

* Make sure we don't blow-out the temporary valloc() space in early boot
due to nbufs being too large.

* Unbound 'kern.nbuf' specifications in /boot/loader.conf as well.

show more ...


Revision tags: v3.0.3
# e46d128d 07-Jun-2012 Sascha Wildner <saw@online.de>

kernel: Use hashdestroy() to free hash tables allocated with hashinit().

It asserts that the table is empty before kfree()ing it.


# 4705d921 11-Apr-2012 Sascha Wildner <saw@online.de>

kernel/smbfs: The netsmb check only applies if it is not the module build.

The necessary files from netsmb are built into the module. In the kernel
it is two separate options.

This fixes buildkerne

kernel/smbfs: The netsmb check only applies if it is not the module build.

The necessary files from netsmb are built into the module. In the kernel
it is two separate options.

This fixes buildkernel.

Reported-by: Francois Tigeot <ftigeot@wolfpond.org>

show more ...


Revision tags: v3.0.2, v3.0.1, v3.1.0, v3.0.0
# 884717e1 06-Dec-2011 Sascha Wildner <saw@online.de>

kernel: Replace all usage of MALLOC()/FREE() with kmalloc()/kfree().


# 86d7f5d3 26-Nov-2011 John Marino <draco@marino.st>

Initial import of binutils 2.22 on the new vendor branch

Future versions of binutils will also reside on this branch rather
than continuing to create new binutils branches for each new version.


# e5e63c20 29-Oct-2011 Sascha Wildner <saw@online.de>

kernel: Add missing MODULE_VERSION()s for file systems.

The loader will figure out by itself whether to load a module or not,
depending on whether it's already in the kernel config or not, iif
MODUL

kernel: Add missing MODULE_VERSION()s for file systems.

The loader will figure out by itself whether to load a module or not,
depending on whether it's already in the kernel config or not, iif
MODULE_VERSION() is present.

I.e., if MSDOSFS (that has MODULE_VERSION()) is in the config and
msdos_load="YES" is in /boot/loader.conf, msdos.ko will not be loaded
by the loader at all.

Without MODULE_VERSION() it will lead (in the best case) to whining in
dmesg like for ahci or (in the worst case) to weird behavior, such as
for nullfs:

# mount -a
null: vfsload(null): No such file or directory

Therefore, we definitely want MODULE_VERSION() for all new modules.

This commit is the first in a series to add the missing MODULE_VERSION()s.

I know that ufs is not a module, just included it for completeness' sake.

Reported-by: marino, tuxillo

show more ...


Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0
# 6288c7ec 05-Sep-2009 Alexander Polakov <polachok@gmail.com>

smbfs: use libiconv v.2


# 52174f71 24-Aug-2009 Matthew Dillon <dillon@apollo.backplane.com>

Add a flags argument to VOP_FSYNC()

* So filesystem code knows whether it is being called from userland or not.


Revision tags: v2.3.2, v2.3.1, v2.2.1, v2.2.0, v2.3.0, v2.1.1, v2.0.1
# 3c37c940 06-May-2007 Matthew Dillon <dillon@dragonflybsd.org>

Use SYSREF to reference count struct vnode. v_usecount is now
v_sysref(.refcnt). v_holdcnt is now v_auxrefs. SYSREF's termination state
(using a negative reference count from -0x40000000+) now pla

Use SYSREF to reference count struct vnode. v_usecount is now
v_sysref(.refcnt). v_holdcnt is now v_auxrefs. SYSREF's termination state
(using a negative reference count from -0x40000000+) now places the vnode in
a VCACHED or VFREE state and deactivates it. The vnode is now assigned a
64 bit unique id via SYSREF.

vhold() (which manipulates v_auxrefs) no longer reactivates a vnode and
is explicitly used only to track references from auxillary structures
and references to prevent premature destruction of the vnode. vdrop()
will now only move a vnode from VCACHED to VFREE on the 1->0 transition
of v_auxrefs if the vnode is in a termination state.

vref() will now panic if used on a vnode in a termination state. vget()
must now be used to explicitly reactivate a vnode. These requirements
existed before but are now explicitly asserted.

vlrureclaim() and allocvnode() should now interact a bit better. In
particular, vlrureclaim() will do a better job of finding vnodes to flush
and transition from VCACHED to VFREE, and allocvnode() will do a better
job finding vnodes to reuse without getting blocked by a flush.

allocvnode now uses a real VX lock to sequence vnodes into VRECLAIMED. All
vnode special state processing now uses a VX lock.

Vnodes are now able to be slowly returned to the memory pool when
kern.maxvnodes is reduced at run time.

Various initialization elements have been moved to CTOR/DTOR and are
no longer in the critical path, improving performance. However, since
SYSREF uses atomic_cmpset_int() (aka cmpxchgl), which reduces performance
somewhat, overall performance tends to be about the same.

show more ...


# 086c1d7e 23-Dec-2006 Sascha Wildner <swildner@dragonflybsd.org>

Rename printf -> kprintf in sys/ and add some defines where necessary
(files which are used in userland, too).


# efda3bd0 05-Sep-2006 Matthew Dillon <dillon@dragonflybsd.org>

Rename malloc->kmalloc, free->kfree, and realloc->krealloc. Pass 1


# a11aaa81 12-Aug-2006 Matthew Dillon <dillon@dragonflybsd.org>

VNode sequencing and locking - part 3/4.

VNode aliasing is handled by the namecache (aka nullfs), so there is no
longer a need to have VOP_LOCK, VOP_UNLOCK, or VOP_ISSLOCKED as 'VOP'
functions. Bot

VNode sequencing and locking - part 3/4.

VNode aliasing is handled by the namecache (aka nullfs), so there is no
longer a need to have VOP_LOCK, VOP_UNLOCK, or VOP_ISSLOCKED as 'VOP'
functions. Both NFS and DEADFS have been using standard locking functions
for some time and are no longer special cases. Replace all uses with
native calls to vn_lock, vn_unlock, and vn_islocked.

We can't have these as VOP functions anyhow because of the introduction of
the new SYSLINK transport layer, since vnode locks are primarily used to
protect the local vnode structure itself.

show more ...


# fef8985e 28-Jul-2006 Matthew Dillon <dillon@dragonflybsd.org>

MASSIVE reorganization of the device operations vector. Change cdevsw
to dev_ops. dev_ops is a syslink-compatible operations vector structure
similar to the vop_ops structure used by vnodes.

Remov

MASSIVE reorganization of the device operations vector. Change cdevsw
to dev_ops. dev_ops is a syslink-compatible operations vector structure
similar to the vop_ops structure used by vnodes.

Remove a huge number of instances where a thread pointer is still being
passed as an argument to various device ops and other related routines.
The device OPEN and IOCTL calls now take a ucred instead of a thread pointer,
and the CLOSE call no longer takes a thread pointer.

show more ...


# 66a1ddf5 18-Jul-2006 Matthew Dillon <dillon@dragonflybsd.org>

Remove several layers in the vnode operations vector init code. Declare
the operations vector directly instead of via a descriptor array. Remove
most of the recalculation code, it stopped being nee

Remove several layers in the vnode operations vector init code. Declare
the operations vector directly instead of via a descriptor array. Remove
most of the recalculation code, it stopped being needed over a year ago.

This work is similar to what FreeBSD now does, but was developed along a
different line. Ultimately our vop_ops will become SYSLINK ops for userland
VFS and clustering support.

show more ...


# acde96db 06-May-2006 Matthew Dillon <dillon@dragonflybsd.org>

Remove the thread argument from all mount->vfs_* function vectors,
replacing it with a ucred pointer when applicable. This cleans up a
considerable amount of VFS function code that previously delved

Remove the thread argument from all mount->vfs_* function vectors,
replacing it with a ucred pointer when applicable. This cleans up a
considerable amount of VFS function code that previously delved into
the process structure to get the cred, though some code remains.

Get rid of the compatibility thread argument for hpfs and nwfs. Our
lockmgr calls are now mostly compatible with NetBSD (which doesn't use a
thread argument either).

Get rid of some complex junk in fdesc_statfs() that nobody uses.

Remove the thread argument from dounmount() as well as various other
filesystem specific procedures (quota calls primarily) which no longer
need it due to the lockmgr, VOP, and VFS cleanups. These cleanups also
have the effect of making the VFS code slightly less dependant on the
calling thread's context.

show more ...


123