Age | Commit message (Collapse) | Author |
|
The logic used in msdosfs_bmap() to loop calling pcbmap() comes from
FreeBSD and is not really efficient but it is good enough since it is
only called when generating I/O.
With this diff I get a 100% improvement when reading big files from a
crappy USB stick.
With this and bread_cluster(9) modified to not re-fetch B_CACHED buffers,
reading large contiguous files with chunk sizes of MAXPHYS is almost as
fast as physio(9) on the same device.
For a 'real world' example, when copying music files from a USB stick I
see a speed jump from 15MB/s on -current to 24Mb/s with this diff.
While here rename some 'lbn' variables into 'cn' to better reflect what
we're dealing with.
Tested by Mathieu, with support from deraadt@
|
|
offset.
From Serguey Parkhomovsky via bugs@, in response to problem report
from matthieu@. Same fix is in NetBSD for one.
ok tedu@
|
|
e.g. print pointers with %p instead of %08x. No changes outside of
MSDOSFS_DEBUG.
|
|
read without generating spurious headaches.
|
|
|
|
atime and mtime are UTIME_OMIT (at least for ufs, tmpfs, and ext2fs), and
to correctly handle a timestamp of -1.
ok millert@
|
|
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
define in sys/limits.h. OK guenther@
|
|
- rename uiomove() to uiomovei() and update all its users.
- introduce uiomove(), which is similar to uiomovei() but with a size_t.
- rewrite uiomovei() as an uiomove() wrapper.
ok kettenis@
|
|
|
|
ok dlg@ mpi@ bcook@ millert@ miod@
|
|
objective: vnode.h doesn't include uvm_extern.h anymore.
followup changes: include uvm_extern.h or lock.h where necessary.
ok and help from deraadt
|
|
ok deraadt@ tedu@
|
|
ok deraadt@ tedu@
|
|
|
|
ok mpi@ kspillner@
|
|
ok tedu@
|
|
after discussions with beck deraadt kettenis.
|
|
don't need to be married.
ok guenther miod beck jsing kettenis
|
|
Merged from FreeBSD's revision 206098.
ok beck@
|
|
FreeBSD did this years ago in revision 126086 as pointed out by
John-Mark Gurney on tech. Merge it and sync two occurrences.
ok krw@
|
|
* fix bug preventing sync after more than one rw -> ro cycle.
* sync data and not only metadata
ok guenther@
|
|
|
|
|
|
12/31/2107. 64-bit time_t now dominates that entire range, so simply
set all dates that cannot be represented to 1/1/1980 like Redmond
intended.
Problem reported by Alessandro De Laurenzis via misc@.
ok guenther@
|
|
on the written buffers. Use the flag for writes from the page daemon to
ensure that we free buffers written out by the page daemon rather than
caching them.
ok kettenis@
|
|
ok mikeb@ espie@
|
|
in the padding or trailing name bytes.
ok beck@ millert@ espie@
|
|
- despite the name, ntohl returns uint32_t, not long
- also fix some %d into %u
|
|
by using size_t/ssize_t instead of int/u_int to handle I/O lengths in
uiomove(), vn_fsizechk(), and ktrgenio(). Eliminate the always-zero
'error' argument to ktrgenio() at the same time.
|
|
members to 64bit types. Assign new syscall numbers for (almost
all) the syscalls that involve the affected types, including anything
with time_t, timeval, itimerval, timespec, rusage, dirent, stat,
or kevent arguments. Add a d_off member to struct dirent and replace
getdirentries() with getdents(), thus immensely simplifying and
accelerating telldir/seekdir. Build perl with -DBIG_TIME.
Bump the major on every single base library: the compat bits included
here are only good enough to make the transition; the T32 compat
option will be burned as soon as we've reached the new world are
are happy with the snapshots for all architectures.
DANGER: ABI incompatibility. Updating to this kernel requires extra
work or you won't be able to login: install a snapshot instead.
Much assistance in fixing userland issues from deraadt@ and tedu@
and build assistance from todd@ and otto@
|
|
test period; i think 3 years ago the last bugs fell out.
ok otto beck others
|
|
okay tedu@
|
|
the special provided when the mount was requested. This may be the same as
the special that was actually used for the mount (e.g. in the case of a
device node) or it may be different (e.g. in the case of a DUID).
Whilst here, change f_ctime to a 64 bit type and remove the pointless
f_spare members.
Compatibility goo courtesy of guenther@
ok krw@ millert@
|
|
msdos, NFS, fifos and devices, plus support for querying it in
getconf(2) and the requisite pathconf(2) manpage blurb
ok tedu@
|
|
_PC_PRIO_IO, and _PC_SYNC_IO names in VOP_PATHCONF(), as they're
fs-independent for us. Since we don't support latter three on any
fs, we can also define the related _POSIX_{ASYNC,PRIO,SYNC}_IO
symbols in <unistd.h> (via sys/unistd.h) with value -1.
Also, zap pointless tty-only values from procfs(!).
ok beck@, deraadt@
|
|
attributes; making it more "user-friendly". Mostly from FreeBSD.
OK guenther@, krw@.
|
|
- Avoid using copyinstr() without checking the return value.
- sys_mount() has already copied the path in, so pass this to the
filesystem mount code so that it does not have to copy it in again.
- Avoid copyinstr()/bzero() dance when we can simply bzero() and strlcpy().
ok krw@
|
|
using "%.11s" to print them out. Make all dos file names 11 byte
arrays and nuke the attempt to put '\0' at the 12th position of
such an array.
Fixes 'panic: smashed stack in msdosfs_rename.c' reported by
MERHIGI Marcus via tech@.
Tested by MERHIGI Marcus. Suggestions and ok tedu@.
|
|
rlimit, then a write that would take it over the limit should be
clamped, making it a partial write.
ok beck@
|
|
to diff against FreeBSD's.
From Brad; no object file change on amd64.
|
|
caching the last cluster in the file before extending it considerably
speeds up further lookups. As a consequence this keeps write speed from
gradually decreasing and provides a measurable (up to 2x) performance
increase. Prompted by the diff from Alexander Polakov, ok miod, krw.
|
|
monitoring fs mounts happy
tested by ajacoutot@ and ok by thib@, krw@
|
|
|
|
|
|
and return EOPNOTSUPP directly from the VOP_* functions.
Filesystems should, at some point fill in every function
in the vop_default struct so we can get rid of the 'if'
statements in VOP_*.
|
|
unrelated, and his alpha is much happier now.
OK deraadt@
|
|
|
|
|
|
/* something */
if (error) {
VOP_UNLOCK();
return;
}
VOP_UNLOCK();
to the clearer and shorter:
VOP_UNLOCK();
if (error)
return;
ok thib@, jsing@ as part of a larger diff.
|