History log of /openbsd/sys/msdosfs/msdosfs_vfsops.c (Results 1 – 25 of 97)
Revision Date Author Comments
# 7196c146 17-Jul-2023 semarie <semarie@openbsd.org>

vfs: drop several macros hidding eopnotsupp

make it obvious in the vfsops assignment that an op isnt supported.

from thib4711 at mailbox dot org
ok claudio@


# 4b515238 12-Aug-2022 visa <visa@openbsd.org>

Put more struct vnode fields under splbio().

Buffer cache related struct vnode fields can be accessed in interrupt
context. Be more consistent with the use of splbio().

OK mpi@


# 5970a935 13-Nov-2021 kn <kn@openbsd.org>

Use long filenames by default on FAT filesystems

These days, 8.3 filenames are often a problem, filesystems containing
firmware with long names must not truncate them -- it's also a sane default
as

Use long filenames by default on FAT filesystems

These days, 8.3 filenames are often a problem, filesystems containing
firmware with long names must not truncate them -- it's also a sane default
as portable file system between OSes, anyway.

Altough undocumented in mount_msdos(8), the default for FAT32 already is to
use long filenames: ever since its import from NetBSD in 1998.

Previously, mount_msdos would ignore long filenames and default to short
filenames unless a flag was used or long ones were found on the filesystem
prior to mounting it.

Just always mount with support for long filenames (unless `-s' is used).


As various install media use FAT filesystems, adjust the remaining ones to
also pass explicit mount option reflecting the previous default.

OK deraadt

show more ...


# c34741d6 10-Aug-2020 jsg <jsg@openbsd.org>

consistently return EINVAL on invalid BPB

reverts changes from msdosfs_vfsops.c rev 1.7

Prompted by a patch from John Carmack to add an an error path when exFAT
is detected on mount to give a more

consistently return EINVAL on invalid BPB

reverts changes from msdosfs_vfsops.c rev 1.7

Prompted by a patch from John Carmack to add an an error path when exFAT
is detected on mount to give a more helpful error message.
Returning EINVAL in the existing sanity checks will make mount_msdos(8)
print "not an MSDOS filesystem" when attempting to mount exFAT and
matches historic and documented behaviour.

ok kn@

show more ...


# 42f54f89 24-Jan-2020 tedu <tedu@openbsd.org>

remove a notyet that remains more not than yet after 25 years. ok krw


# 41f642fc 26-Dec-2019 bluhm <bluhm@openbsd.org>

Convert struct vfsops initializer to C99 style.
OK visa@


# a8d7c3be 25-Jul-2019 cheloha <cheloha@openbsd.org>

vinvalbuf(9): tlseep -> tsleep_nsec(9); ok millert@


# 08107a0b 27-May-2018 visa <visa@openbsd.org>

Drop unnecessary `p' parameter from vget(9).

OK mpi@


# 6e880534 02-May-2018 visa <visa@openbsd.org>

Remove proc from the parameters of vn_lock(). The parameter is
unnecessary because curproc always does the locking.

OK mpi@


# 36bb23f1 28-Apr-2018 visa <visa@openbsd.org>

Clean up the parameters of VOP_LOCK() and VOP_UNLOCK(). It is always
curproc that does the locking or unlocking, so the proc parameter
is pointless and can be dropped.

OK mpi@, deraadt@


# 976e9839 10-Feb-2018 deraadt <deraadt@openbsd.org>

Syncronize filesystems to disk when suspending. Each mountpoint's vnodes
are pushed to disk. Dangling vnodes (unlinked files still in use) and
vnodes undergoing change by long-running syscalls are

Syncronize filesystems to disk when suspending. Each mountpoint's vnodes
are pushed to disk. Dangling vnodes (unlinked files still in use) and
vnodes undergoing change by long-running syscalls are identified -- and
such filesystems are marked dirty on-disk while we are suspended (in case
power is lost, a fsck will be required). Filesystems without dangling or
busy vnodes are marked clean, resulting in faster boots following
"battery died" circumstances.
Tested by numerous developers, thanks for the feedback.

show more ...


# c0cd3489 30-Dec-2017 guenther <guenther@openbsd.org>

Don't pull in <sys/file.h> just to get fcntl.h

ok deraadt@ krw@


# 7efda1a1 11-Dec-2017 deraadt <deraadt@openbsd.org>

In uvm Chuck decided backing store would not be allocated proactively
for blocks re-fetchable from the filesystem. However at reboot time,
filesystems are unmounted, and since processes lack backing

In uvm Chuck decided backing store would not be allocated proactively
for blocks re-fetchable from the filesystem. However at reboot time,
filesystems are unmounted, and since processes lack backing store they
are killed. Since the scheduler is still running, in some cases init is
killed... which drops us to ddb [noted by bluhm]. Solution is to convert
filesystems to read-only [proposed by kettenis]. The tale follows:
sys_reboot() should pass proc * to MD boot() to vfs_shutdown() which
completes current IO with vfs_busy VB_WRITE|VB_WAIT, then calls VFS_MOUNT()
with MNT_UPDATE | MNT_RDONLY, soon teaching us that *fs_mount() calls a
copyin() late... so store the sizes in vfsconflist[] and move the copyin()
to sys_mount()... and notice nfs_mount copyin() is size-variant, so kill
legacy struct nfs_args3. Next we learn ffs_mount()'s MNT_UPDATE code is
sharp and rusty especially wrt softdep, so fix some bugs adn add
~MNT_SOFTDEP to the downgrade. Some vnodes need a little more help,
so tie them to &dead_vnops.

ffs_mount calling DIOCCACHESYNC is causing a bit of grief still but
this issue is seperate and will be dealt with in time.
couple hundred reboots by bluhm and myself, advice from guenther and
others at the hut

show more ...


# a34a8c9c 29-May-2017 sf <sf@openbsd.org>

msdosfs & ffs: flush cache if updating mount from r/w to r/o

ok deraadt@


# ba4520cc 10-Oct-2016 bluhm <bluhm@openbsd.org>

Rename BIOS parameter block field from bsPBP to bsBPB. This typo
has been fixed in FreeBSD in 2002. No binary change.
From Alexander von Gernler; OK krw@


# 0aa71678 09-Oct-2016 bluhm <bluhm@openbsd.org>

Do not check the SecPerTrack field of the BPB when mounting a MSDOS
file system. In modern images the field is not set properly and
the value is not used anyway. FreeBSD has removed the check alrea

Do not check the SecPerTrack field of the BPB when mounting a MSDOS
file system. In modern images the field is not set properly and
the value is not used anyway. FreeBSD has removed the check already
in 2008.
From Alexander von Gernler; OK krw@

show more ...


# 14151ecc 28-Sep-2016 jca <jca@openbsd.org>

Kill empty ifdef; ok fcambus@


# 685efd6e 07-Sep-2016 natano <natano@openbsd.org>

Remove usermount remnants. ok tedu


# 41e0c475 13-Aug-2016 guenther <guenther@openbsd.org>

Eliminate pointless casts to qaddr_t of a value being assigned to a void*

ok kettenis@ krw@ natano@ dlg@ espie@


# 9ee302b8 22-May-2016 bluhm <bluhm@openbsd.org>

When pulling an msdos formated umass stick during mount while the
usb stack was busy, the kernel could trigger an uvm fault. There
is a race between vop_generic_revoke() and sys_mount() where vgonel

When pulling an msdos formated umass stick during mount while the
usb stack was busy, the kernel could trigger an uvm fault. There
is a race between vop_generic_revoke() and sys_mount() where vgonel()
could reset v_specinfo. Then v_specmountpoint is no longer valid.
So after sleeping, msdosfs_mountfs() could crash in the error path.
The code in the different *_mountfs() functions was inconsistent,
implement the same check everywhere.
OK krw@ natano@

show more ...


# f28dec03 26-Apr-2016 natano <natano@openbsd.org>

Populate all necessary statfs members in .vfs_statfs. cd9660, udf,
msdosfs and nfsv2 don't set f_namemax. ntfs and ext2fs don't set
f_namemeax and f_favail. fusefs doesn't set f_mntfromspec, f_favail

Populate all necessary statfs members in .vfs_statfs. cd9660, udf,
msdosfs and nfsv2 don't set f_namemax. ntfs and ext2fs don't set
f_namemeax and f_favail. fusefs doesn't set f_mntfromspec, f_favail and
f_iosize. Also, make all filesystems use copy_statfs_info(), so that all
statfs information is filled in correctly for the (sb != &mp->mnt-stat)
case.

ok stefan

show more ...


# 4b1ae25e 27-Mar-2016 bluhm <bluhm@openbsd.org>

When pulling and unmounting an umass USB stick, the file system
could end up in an inconsistent state. The fstype dependent
mp->mnt_data was NULL, but the general mp was still listed as a
valid moun

When pulling and unmounting an umass USB stick, the file system
could end up in an inconsistent state. The fstype dependent
mp->mnt_data was NULL, but the general mp was still listed as a
valid mount point. Next access to the file system would crash with
a NULL pointer dereference.
If closing the device fails, the mount point must go away anyway.
There is nothing we can do about it. Remove the workaround for the
EIO error in the general unmount code, but do not generate any error
in the file system specific unmount functions.
OK natano@ beck@

show more ...


# 937fcae7 19-Mar-2016 natano <natano@openbsd.org>

Remove the unused flags argument from VOP_UNLOCK().

torture tested on amd64, i386 and macppc
ok beck mpi stefan
"the change looks right" deraadt


# 200e77f4 17-Mar-2016 bluhm <bluhm@openbsd.org>

Set mnt_data to NULL after freeing the file system specific mount point.
OK krw@ natano@ as part of a larger diff


# 81ad5374 23-Oct-2015 krw <krw@openbsd.org>

Fix printf() types so kernel compiles with or w/o MSDOSFS_DEBUG.
e.g. print pointers with %p instead of %08x. No changes outside of
MSDOSFS_DEBUG.


1234