In other words, deny multiple read-only mounts of the same device.
Shared read-only mounts should theoretically be possible, but,
unfortunately, can not be implemented correctly using current
buffer cache code/interface and results in an eventual system crash.
Also, using nullfs seems to be a more efficient way to achieve the same
goal.
This gets us back to where we were before GEOM and where other BSDs are.
vn_stat: take into account va_blocksize when setting st_blksize
As currently st_blksize is always PAGE_SIZE, it is playing safe to not
use any smaller value. For some cases this might not be optimal, but
at least nothing should get broken.
Generally I don't expect this commit to change much for the following
reasons (in case of VREG, VDIR):
- application I/O and physical I/O are sufficiently decoupled by
filesystem code, buffer cache code, cluster and read-ahead logic
- not all applications use st_blksize as a hint, some use f_iosize, some
use fixed block sizes
I expect writes to the middle of files on ZFS to benefit the most from
this change.
Keep the list of default keywords sorted so that paranoid folks like me
don't try to find a hidden meaning in the strange order. The list used
to be sorted in rev. 1.1 from 4.4BSD but the order was broken as soon as
in rev. 1.2 by a single-character fix.
marius [Fri, 2 Apr 2010 21:48:27 +0000 (21:48 +0000)]
With r205496 in place we should ensure that nargs and nreturns are always
set to sane values as they no longer default to 0, otherwise some OFW
implementation might copy in or out arguments not based on what the actual
function takes but what ever stack garbage nargs and nreturns supply.
add example indent.pro file believed to produce code with minimal differences from KNF
This file is what bde uses!
With addition of some types from queue(3) by hps.
Please note that the output will not be KNF and currently it's not
possible to achieve correct KNF with any combination of options.
indent(1) needs to be made smarter.
Some issues:
o indent produces a space between a queue type macro and opening
parenthesis
o indent produces a tab before __packed and __aligned
o indent produce a space after #define
bde also notes difference in the following options between this profile
and profile in /usr/src/admin/style of 4.4BSD:
-cdb -ei -ip8 -nsob
Also, NetBSD uses -di0 instead of -di8.
Location for the profile is suggested by jh.
Submitted by: Hans Petter Selasky (parts)
Obtained from: bde :-)
MFC after: 10 days
X-ToDo: make indent able to produce proper (perfect) KNF
X-Perhaps-ToDo: make KNF default output
mountmsdosfs: reject too high value of bytes per cluster
Bytes per cluster are calcuated as bytes per sector times sectors per
cluster. Too high value can overflow an internal variable with type
that can hold only values in valid range. Trying to use a wider type
results in an attempt to read more than MAXBSIZE at once, a panic.
Unfortunately, it is FreeBSD newfs_msdos that produces filesystems
with invalid parameters for certain types of media.
Reported by: Fabian Keil <freebsd-listen@fabiankeil.de>,
Paul B. Mahol <onemda@gmail.com>
Discussed with: bde, kib
MFC after: 1 week
X-ToDo: fix newfs_msdos
bo_bsize: revert r205860 and take an alternative approch in getblk
In r205860 I missed the fact that there is code that strongly assumes
that devvp bo_bsize is equal to underlying provider's sectorsize.
In those places it is hard to obtain the sectorsize in an alternative
way if devvp bo_bsize is set to something else.
So, I am reverting bo_bsize assigment in g_vfs_open.
Instead, in getblk I use DEV_BSIZE block size for b_offset calculation
if vp is a disk vp as reported by vn_isdisk. This should coinside with
vp being a devvp.
Reported by: Mykola Dzham <i@levsha.me>
Tested by: Mykola Dzham <i@levsha.me>
Pointyhat to: avg
MFC after: 2 weeks
X-ToDo: convert bread(devvp) in all fs to use bo_bsize-d blocks
Supply default implementation of VOP_RENAME() that does neccessary
unlocks and unreferences for argument vnodes, as expected by
kern_renameat(9), and returns EOPNOTSUPP. This fixes locks and
reference leaks when rename is attempted on fs that does not
implement rename.
PR: kern/107439
Based on submission by: Mikolaj Golub <to.my.trociny gmail com>
Tested by: Mikolaj Golub
MFC after: 1 week
Add function vop_rename_fail(9) that performs needed cleanup for locks
and references of the VOP_RENAME(9) arguments. Use vop_rename_fail()
in deadfs_rename().
- Support for uncore counting events: one fixed PMC with the uncore
domain clock, 8 programmable PMC.
- Westmere based CPU (Xeon 5600, Corei7 980X) support.
- New man pages with events list for core and uncore.
- Updated Corei7 events with Intel 253669-033US December 2009 doc.
There is some removed events in the documentation, they have been
kept in the code but documented in the man page as obsolete.
- Offcore response events can be setup with rsp token.
WITH_CTF can now be specified in src.conf (not recommended, there
are some problems with static executables), make.conf (would also
affect ports which do not use GNU make and do not override the
compile targets) or in the kernel config (via "makeoptions
WITH_CTF=yes").
Additional (related) changes:
- propagate WITH_CTF to module builds
- do not add -g to the linker flags, it's a noop there anyway
(at least according to the man page of ld)
- do not add -g to CFLAGS unconditionally
we need to have a look if it is really needed (IMO not) or if there
is a way to add it only when WITH_CTF is used
Note: ctfconvert / ctfmerge lines will not appear in the build output,
to protect the innocent (those which do not build with WITH_CTF would
see the shell-test and may think WITH_CTF is used).
Reviewed by: imp, jhb, scottl (earlier version)
Discussed on: arch@
For the experimental NFS server, add a call to free the lookup
path buffer for one case where it was missing when doing mkdir.
This could have conceivably resulted in a leak of a buffer, but
a leak was never observed during testing, so I suspect it would
have occurred rarely, if ever, in practice.
Add SAVENAME to the cn_flags for all cases in the experimental
NFS server for the CREATE cn_nameiop where SAVESTART isn't set.
I was not aware that this needed to be done by the caller until
recently.
Tested by: lampa AT fit.vutbr.cz (link case)
Submitted by: lampa AT fit.vutbr.cz (link case)
MFC after: 2 weeks
We don't need to note that mkproto is missing anymore. It is
definitely OBE in a number of ways, and likely should have been
removed in 2000, not 2010.
IOCPARM_MAX defines maximum size of a structure that can be passed
directly to ioctl(2). Because of how ioctl command is build using _IO*()
macros we have only 13 bits to encode structure size. So the structure
can be up to 8kB-1.
Currently we define IOCPARM_MAX as PAGE_SIZE.
This is IMHO wrong for three main reasons:
1. It is confusing on archs with page size larger than 8kB (not really
sure if we support such archs (sparc64?)), as even if PAGE_SIZE is
bigger than 8kB, we won't be able to encode anything larger in ioctl
command.
2. It is a waste. Why the structure can be only 4kB on most archs if we
have 13 bits dedicated for that, not 12?
3. It shouldn't depend on architecture and page size. My ioctl command
can work on one arch, but can't on the other?
Increase IOCPARM_MAX to 8kB and make it independed of PAGE_SIZE and
architecture it is compiled for. This allows to use all the bits on all the
archs for size. Note that this doesn't mean we will copy more on every ioctl(2)
call. No. We still copyin(9)/copyout(9) only exact number of bytes encoded in
ioctl command.
Practical use for this change is ZFS. zfs_cmd_t structure used for ZFS
ioctls is larger than 4kB.
simon [Thu, 1 Apr 2010 15:35:29 +0000 (15:35 +0000)]
- Make it slightly simpler to update OpenSSL version information
for regenerating OpenSSL manual pages.
- Explicitly set the OpenSSL release date so manual pages contain
the date OpenSSL was released and not just the date OpenSSL was
imported into the FreeBSD base system.
- Update for Makefile for OpenSSL 0.9.8n.
- Replace hardcoded INDEX version. [1]
- Fix a buffer overlap. [2]
- Remove empty package when fetching fails and -K is used. [3]
- Remove useless chmod2() after mkdtemp(3). [4]
- Replace mkdir(1) call with mkdir(2). [5]
- Get rid of some vsystem() calls.
- Switch from lstat(2) to open(2) in fexists().
- Try rename(2) in move_file() first.
- Bump PKG_INSTALL_VERSION to 20100401.
jfv [Wed, 31 Mar 2010 23:24:42 +0000 (23:24 +0000)]
The POLL code was missed in the queue conversion,
change the argument type to igb_rxeof() to the
correct type. Note, any users of POLLING must
be sure and set the number of queues to 1 for
things to work correctly.
mav [Wed, 31 Mar 2010 22:16:05 +0000 (22:16 +0000)]
Make ng_ksocket fulfill lower protocol stack layers alignment requirements
on platforms with strict alignment constraints.
This fixes kernel panics on arm and probably other architectures.
marius [Wed, 31 Mar 2010 20:43:24 +0000 (20:43 +0000)]
Hook the identification LEDs of igb(4), lem(4) and em(4) devices up with
led(4) so they can be lit or f.e. made blink via `echo f2 > /dev/led/em0`
for localization purposes.
mav [Wed, 31 Mar 2010 20:37:44 +0000 (20:37 +0000)]
Make ng_ppp fulfill upper protocol stack layers alignment requirements
on platforms with strict alignment constraints.
This fixes kernel panics on arm and probably other architectures.
fabient [Wed, 31 Mar 2010 20:00:44 +0000 (20:00 +0000)]
If there is multiple PMCs for the same interrupt ignore new post.
This will indirectly fix a bug where the thread will be pinned
forever if the assert is not compiled.
uqs [Wed, 31 Mar 2010 18:21:25 +0000 (18:21 +0000)]
Sync fortunes with other *BSDs
- Spelling errors
- Typographical fixes
- Consistent attributions
- Use Jr. more consistently
- Capitalization of dictionary-like entries
- Sorting using tools/do_sort
- Remove duplicate fortunes
- Style according to the Notes file
- Reflect correct default fortune name in Notes
- Remove some no longer needed spelling hints
- Drop latin1 characters (sorry MÃ¥rten)
This is a partial sync against the DragonflyBSD sources, where a lot of
fixes from Free, Net and OpenBSD were merged previously. Only about 50%
of the changes originate from there, the rest was done by dougb and
yours truly.
Partial review by: wilko (earlier version), ed (dito)
In collaboration with: dougb
Approved by: ed (co-mentor)
imp [Wed, 31 Mar 2010 18:18:37 +0000 (18:18 +0000)]
Two fixes:
(1) We don't need a custom install_kernel. We can install without
symbols by adding INSTALL_NODEBUG (which likely should be
WITHOUT_KERNEL_SYMBOLS_FILE, or something shorter) to CONF_INSTALL
(2) for make buildenv stage, use NANO_MAKE_CONF_BUILD rather than the
non-existant NANO_MAKE_CONF.
mjacob [Wed, 31 Mar 2010 17:47:57 +0000 (17:47 +0000)]
For unhandled actions in xpt_action_default, remember to call
xpt_done for queued requests. This solves the problem of
indefinite hangs for unspecified transports when XPT_SCAN_BUS
is called.
imp [Wed, 31 Mar 2010 14:42:07 +0000 (14:42 +0000)]
Stop hard coding i386 as the arch for the build. Instead, default to the
processor we're running on. Also, supply amd64 version of create_diskimage
that's the same as i386's.
# didn't fix the confusion between using the processor for this and using
# the machine (which would be more appropriate). NANO_ARCH smashes the two
# together right now.
jmallett [Wed, 31 Mar 2010 02:12:24 +0000 (02:12 +0000)]
Be like stdlib.h and bring in a wchar_t definition and use it to prototype
wcstoimax and wcstoumax, rather than spelling it __wchar_t. This is necessary
to use these functions in C++ where wchar_t is different to __wchar_t and is
a built-in type.
It may be better to use __wchar_t here and to simply define __wchar_t as being
wchar_t in C++ mode rather than to bring in wchar_t, but this is less invasive
and follows our existing practice, and restores wchar_t usage in this file to
what it was before r1.8.
rmacklem [Tue, 30 Mar 2010 23:11:50 +0000 (23:11 +0000)]
This patch should fix handling of byte range locks locally
on the server for the experimental nfs server. When enabled
by setting vfs.newnfs.locallocks_enable to non-zero, the
experimental nfs server will now acquire byte range locks
on the file on behalf of NFSv4 clients, such that lock
conflicts between the NFSv4 clients and processes running
locally on the server, will be recognized and handled correctly.
edwin [Tue, 30 Mar 2010 21:11:16 +0000 (21:11 +0000)]
For where possible, make the dates of the Tasmanian holidays properly
variable. The leftover ones are the Thursday before the Fourth
Saturday of October (Oct/SatFourth-2) which is not possible yet.
jfv [Tue, 30 Mar 2010 19:09:18 +0000 (19:09 +0000)]
Thanks to Michael Tuexen for adding SCTP support for 82599,
also for finding a one character bug that kept TSO from working.
Sometimes with direct attach cables a failure can occur in init,
the old method of calling detach was broken, there is no way to
return an error to the system from init, so I have changed it to
return failure thru the ioctl.
And, have fixed the ALTQ code changes of Max Laier, sorry Max :)
jhb [Tue, 30 Mar 2010 19:07:41 +0000 (19:07 +0000)]
Use panic() (which the environment is required to provide to libstand) to
implement assert() instead of relying on a non-required exit(). The exit()
invocation also did not match the semantics of the exit() routine that
current boot environments happen to require.
maxim [Tue, 30 Mar 2010 09:58:21 +0000 (09:58 +0000)]
o Make sockstat -6 output more readable for long ipv6
addresses (most of them apart from ::1): put a whitespace
between local and remote address:port pairs.