Commit Graph

292 Commits

Author SHA1 Message Date
wiz 3914d9bd61 Add RCS Id. Sort options. Fix xref.
XXX: virtdir(3) does not exist, but I do not know to which page the link
should point instead.
2008-05-25 19:42:22 +00:00
dholland b20bda484e MKMAN should not be set in source makefiles. Use NOMAN. 2008-03-09 22:47:11 +00:00
elad cd05a6ee9b Introduce a new kauth action, KAUTH_NETWORK_NFS, and two requests,
KAUTH_REQ_NETWORK_NFS_EXPORT and KAUTH_REQ_NETWORK_NFS_SVC, and use them
to replace two KAUTH_GENERIC_ISSUSER calls in the NFS code.

Also replace two more with KAUTH_SYSTEM_MKNOD, where appropriate.

Documetnation and examples updated. More to come.
2008-02-28 17:07:49 +00:00
elad 67470a76a1 Factor out the guts of get/setparam so it can be used from the compat code.
Make the FreeBSD and Linux compat code convert the parameters to their
native representation and call the native routines.

Remove KAUTH_PROCESS_SCHEDULER_GET/SET.

Update documentation and examples.

XXX: For now, only the Linux compat code does the priority conversion
XXX: right.

Linux priority conversion code from yamt@, thanks!

Okay yamt@.
2008-02-28 16:09:18 +00:00
elad e99760e7e4 Fold KAUTH_REQ_PROCESS_SCHEDULER_* to KAUTH_PROCESS_SCHEDULER_*. In other
words, don't pass an action and a request, and just use a single action to
indicate what is the operation in question.

This is the first step in fixing PR/37986, which calls for policy/priority
checking in the secmodel code. Right now we're lacking room for another
parameter required to make a decision, and this change makes room for such.
2008-02-16 16:39:34 +00:00
agc fca43256ed make sure we have an __UNCONST definition available, for portability reasons. 2008-02-10 11:02:05 +00:00
agc 5a37868bfa Define the version of the FUSE ABI we're working with specifically.
Don't hand all the argv options to fuse_main() - it's only interested
in the ones we haven't parsed ourselves.

These changes make the initiator compile and perform discovery successfully
on FreeBSD 6.3. Full login doesn't work yet due to a KSE related bug.
2008-02-07 07:33:37 +00:00
agc 5ca5718e92 Set a definitive FUSE ABI before including fuse.h, to avoid situations
where different operating ssystems default to different levels.
2008-02-07 07:21:15 +00:00
elad e43f626d03 Add, document, and use KAUTH_REQ_PROCESS_KTRACE_PERSISTENT. 2008-02-02 21:04:40 +00:00
elad cd23f36378 Replace a KAUTH_GENERIC_ISSUSER in the cpuctl code with a proper kauth
request.

Reviewed by ad@, tested by me.
2008-02-01 20:01:06 +00:00
elad fb37bad459 Use proper kauth(9) actions/requests for native scheduler stuff and the
recently introduced processor-sets.

Discussed with and okay rmind@, yamt@, and christos@.
2008-01-30 17:54:55 +00:00
elad c27d5f30b6 Tons of process scope changes.
- Add a KAUTH_PROCESS_SCHEDULER action, to handle scheduler related
    requests, and add specific requests for set/get scheduler policy and
    set/get scheduler parameters.

  - Add a KAUTH_PROCESS_KEVENT_FILTER action, to handle kevent(2) related
    requests.

  - Add a KAUTH_DEVICE_TTY_STI action to handle requests to TIOCSTI.

  - Add requests for the KAUTH_PROCESS_CANSEE action, indicating what
    process information is being looked at (entry itself, args, env,
    open files).

  - Add requests for the KAUTH_PROCESS_RLIMIT action indicating set/get.

  - Add requests for the KAUTH_PROCESS_CORENAME action indicating set/get.

  - Make bsd44 secmodel code handle the newly added rqeuests appropriately.

All of the above make it possible to issue finer-grained kauth(9) calls in
many places, removing some KAUTH_GENERIC_ISSUSER requests.

  - Remove the "CAN" from KAUTH_PROCESS_CAN{KTRACE,PROCFS,PTRACE,SIGNAL}.

Discussed with christos@ and yamt@.
2008-01-23 15:04:38 +00:00
elad 964f16c2b9 Make fork use kauth.
Been running in my tree for over a month at least.

Reviewed and okay yamt@, and special thanks to him as well as rittera@
for making this possible through fixing NDIS to not call fork1() with
l1 != curlwp.
2008-01-07 23:51:06 +00:00
ad 2ecdf58c2c Remove systrace. Ok core@. 2007-12-31 15:31:24 +00:00
pooka 4d243cfc9d use generic getattr 2007-12-19 14:01:30 +00:00
agc 755a2e55e0 Move to a resizable dynamic array for the targets that the initiator
can find.

If the initiator discovers too many targets for it to handle
(currently more than 16), then truncate to the maximum with a loud
warning message, rather than aborting.

In practice, this means that multiple targets can now be used with the
NetBSD iSCSI initiator.

% ls -laR /mnt/inspiron1300.wherever.co.uk/
total 192
drwxr-xr-x  2 agc   agc    512 Dec 11 08:53 .
drwxr-xr-x  2 root  wheel    0 Jan  1  1970 ..
drwxr-xr-x  2 agc   agc    512 Dec 11 08:53 target0
drwxr-xr-x  2 agc   agc    512 Dec 11 08:53 target1

/mnt/inspiron1300.wherever.co.uk/target0:
total 576
drwxr-xr-x  2 agc  agc        512 Dec 11 08:53 .
drwxr-xr-x  2 agc  agc        512 Dec 11 08:53 ..
lrw-r--r--  1 agc  agc         44 Dec 11 08:53 hostname -> inspiron1300.wherever.co.uk
lrw-r--r--  1 agc  agc          9 Dec 11 08:53 ip -> 10.4.0.42
lrw-r--r--  1 agc  agc         16 Dec 11 08:53 product -> NetBSD iSCSI
-rw-r--r--  1 agc  agc  104857600 Dec 11 08:53 storage
lrw-r--r--  1 agc  agc         43 Dec 11 08:53 targetname -> iqn.1994-04.org.netbsd.iscsi-target:target0
lrw-r--r--  1 agc  agc          8 Dec 11 08:53 vendor -> NetBSD
lrw-r--r--  1 agc  agc          4 Dec 11 08:53 version -> 0

/mnt/inspiron1300.wherever.co.uk/target1:
total 576
drwxr-xr-x  2 agc  agc       512 Dec 11 08:53 .
drwxr-xr-x  2 agc  agc       512 Dec 11 08:53 ..
lrw-r--r--  1 agc  agc        44 Dec 11 08:53 hostname -> inspiron1300.wherever.co.uk
lrw-r--r--  1 agc  agc         0 Dec 11 08:53 ip ->
lrw-r--r--  1 agc  agc        16 Dec 11 08:53 product -> NetBSD iSCSI
-rw-r--r--  1 agc  agc  52428800 Dec 11 08:53 storage
lrw-r--r--  1 agc  agc        43 Dec 11 08:53 targetname -> iqn.1994-04.org.netbsd.iscsi-target:target1
lrw-r--r--  1 agc  agc         8 Dec 11 08:53 vendor -> NetBSD
lrw-r--r--  1 agc  agc         4 Dec 11 08:53 version -> 0
%
2007-12-11 09:07:36 +00:00
oster 0fa5922403 Add a '-D' option to allow "Discovery" of the targets provided by a host.
Initial support for multiple targets from the same host.

Base 'MaxTargets' on a #define, rather than hard-coding.

Reviewed by: agc
2007-12-04 16:22:38 +00:00
wiz 0d78c993a2 Use more markup. Fix xrefs. Use standard headers. 2007-12-02 19:31:46 +00:00
pooka 21913eabe5 Rototill.
Ok, ok, a few more words about it: stop holding puffs_cc as a holy
value and passing it around to almost every possible place (popquiz:
which kernel variable does this remind you of?).  Instead, pass
the natural choice, puffs_usermount, and fetch puffs_cc via
puffs_cc_getcc() only in routines which actually need it.  This
not only simplifies code, but (thanks to the introduction of
puffs_cc_getcc()) enables constructs which weren't previously sanely
possible, say layering as a curious example.

There's still a little to do on this front, but this was the major
fs interface blast.
2007-11-30 19:02:28 +00:00
pooka efe797dc32 * version the registration interface
* destroy all created locks
2007-11-28 16:59:02 +00:00
pooka 6a3d9a187d Remove "puffs_cid" from the puffs interface following l-removal
from the kernel vfs interfaces.  puffs_cc_getcaller(pcc) can be
used now should the same information be desired.
2007-11-27 11:31:17 +00:00
uebayasi 22274752ee s, , , 2007-11-23 16:37:47 +00:00
elad 18558073a1 Kill another instance of KAUTH_GENERIC_ISSUSER. 2007-11-23 16:03:47 +00:00
pooka a4b032e2c8 quick & dirty support & tests for ioctl 2007-11-22 11:28:48 +00:00
pooka cf9f5c8530 Register a block device and support read/write to it. 2007-11-21 18:11:17 +00:00
pooka 378e2f0d3e Add a very simple intro-level example on how to use pud. 2007-11-20 18:58:17 +00:00
agc 8b0e0ddc0d The iSCSI target returns the 0-based Max LBA in the READ_CAPACITY command,
and we need to add 1 to it to get the size of the LUN.

Revert Max LBA calculation when returning the Maximum LBA from the target
to the iinitiator, following an email conversation with Jonathan Kollasch,
who points out a number of things:

+ the NetBSD scsipi driver reads the value returned by the drive and adds
one to it, so that standard SCSI drives return the 0-based Max LBA in a
READ CAPACITY command.

+ it is up to the initiator to add 1 to the Max LBA to find out the size
of the LUN (Jonathan verified this by using the UNH iSCSI initiator on
to a NetBSD target)

+ an analogous change to the NetBSD target (revision 1.34 of
disk.c) is needed.
2007-11-18 23:52:13 +00:00
agc 3d98641f85 Fix from Jonathan Kollasch - avoid an intermediate 32-bit value in the
calculation of the size of the storage file.

Remove some dead code.
2007-11-17 23:35:28 +00:00
pooka 4462e9454f use puffs_daemon() instead of daemon() 2007-11-16 18:39:01 +00:00
jmmv 416efab2e1 Fix release build that was broken due to the lack of a clean target.
Noted by ad@.  I didn't see this myself because I always build with
UPDATE set, so no cleaning is done.
2007-11-12 20:13:21 +00:00
jmmv 78bb0388d3 Add the ATF data files
This change adds example files shipped with ATF as well as other data files
required to support some of its features.
2007-11-12 15:01:50 +00:00
agc f2e9f627b5 Only use the bottom 20bits for an inode number to prevent the inode number creeping out of range for fts 2007-11-11 09:31:31 +00:00
agc 762d3dee18 Use the new virtual inode number, which is calculated at directory entry
insertion time, to prevent fts thinking that we have directory cycles.
2007-11-11 09:25:37 +00:00
agc 8abe1b3c75 Include a (random) inode number in the virtual directory information that
is held. Return this as part of the virtual entry information.

Prevents problems with fts code thinking that some directories create
a cycle.
2007-11-11 09:23:29 +00:00
agc 43385f0ea1 Initial import of a working iSCSI initiator, which uses reFUSE and
libpuffs.

With a round of applause to Antti Kantee for helping out with puffs
debugging, and a huge thank you to Greg Oster, who has fixed numerous
bugs over the last week (unfortunately, the bugs are all mine), and
provided enthusiasm and drive.

Right now, the initiator is fulling working for only a single target,
and should be considered to be in a state of flux.  Having said that,
Greg completed a run of build.sh with the storage on the iSCSI target,
and found times to be within 0.5% of direct attached storage.  Cache
effects apply.

The initiator should be portable to everything that uses the FUSE
interface. That's right - a portable iSCSI initiator.

Storage (LUNs exported by the target) is, at the present time,
presented as a regular file called "storage". This will likely
change in the future.

% priv obj/iscsifs -u agc inspiron1300 /mnt &
[1] 13158
inspiron1300.wherever.co.uk: 10.4.0.42:3260,1 iqn.1994-04.org.netbsd.iscsi-target:target0
inspiron1300.wherever.co.uk: 10.4.0.42:3260,1 iqn.1994-04.org.netbsd.iscsi-target:target1

% ls -al /mnt/inspiron1300.wherever.co.uk/target0/
total 576
drwxr-xr-x  2 agc  agc        512 Nov  8 21:07 .
drwxr-xr-x  2 agc  agc        512 Nov  8 21:07 ..
lrw-r--r--  1 agc  agc         44 Nov  8 21:07 hostname -> inspiron1300.wherever.co.uk
lrw-r--r--  1 agc  agc          9 Nov  8 21:07 ip -> 10.4.0.42
lrw-r--r--  1 agc  agc         16 Nov  8 21:07 product -> NetBSD iSCSI
-rw-r--r--  1 agc  agc  104857088 Nov  8 21:07 storage
lrw-r--r--  1 agc  agc         43 Nov  8 21:07 targetname -> iqn.1994-04.org.netbsd.iscsi-target:target0
lrw-r--r--  1 agc  agc          8 Nov  8 21:07 vendor -> NetBSD
lrw-r--r--  1 agc  agc          4 Nov  8 21:07 version -> 0

FFS needs a block device, and so vnconfig can be used to sit on top of
the regular file.

% mount -vv | grep iscsifs
/dev/puffs on /mnt type puffs|refuse:iscsifs (nosuid, nodev, fsid: 0xcb04/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0)
% priv vnconfig vnd0 /mnt/inspiron1300.wherever.co.uk/target0/storage
% priv mount /dev/vnd0a /iscsi
% df
Filesystem   1K-blocks       Used      Avail %Cap Mounted on
/dev/dk0      28101396   21491182    5205146  80% /
kernfs               1          1          0 100% /kern
procfs               4          4          0 100% /proc
ptyfs                1          1          0 100% /dev/pts
/dev/puffs           0          0          0 100% /mnt
/dev/vnd0a       99214       8209      86045   8% /iscsi
% mount -vv | grep iscsi
/dev/puffs on /mnt type puffs|refuse:iscsifs (nosuid, nodev, fsid: 0xcb04/0x6acb, reads: sync 0 async 0, writes: sync 0 async 0)
/dev/vnd0a on /iscsi type ffs (local, fsid: 0xe00/0x78b, reads: sync 1 async 0, writes: sync 2 async 0)
2007-11-08 23:12:03 +00:00
pooka ec865a5b29 Actually, daemonize the file servers before mounting. I might require
at some point that the local protocol handler does not change after
the file system has been mounted.
2007-11-05 17:54:31 +00:00
pooka 4b0f2948e2 Pull the daemonizing code out of the library mainloop into the file
servers.  Calling daemon() (i.e. fork()ing) inside a library can
cause nice surprises for e.g. threaded programs.  As discussed with
Greg Oster & others.
2007-11-05 17:48:17 +00:00
pooka de3b90f940 add testing option -l, which causes the flush of the page cache of
the node under lookup (if found)
2007-10-11 23:03:00 +00:00
pooka ceb690c88e when removing file, free last block also 2007-10-11 13:50:42 +00:00
pooka 90900b0311 dtfs memsets all allocated block content to 0 immediately, so to
avoid wasting unbelievable amounts of memory, set the blocksize to
something more believable.  Should fix the memset-part to act only
up to the size the file is extended to, though.
2007-09-27 12:03:31 +00:00
wiz 68b83c64db Fix xref, sort SEE ALSO. Add RCS Id. 2007-09-11 23:26:13 +00:00
agc bb80e7775d Generalise the tests for OBJDIR and non-OBJDIR builds 2007-09-11 23:23:51 +00:00
agc 696c18a993 Generalise the tests for objdir builds, as well as none 2007-09-11 23:23:08 +00:00
pooka 059aa1fbbc fix usage. from Karl Jenkinson 2007-09-05 17:15:35 +00:00
agc a577a06f30 Modify the NetBSD emulation of the FreeBSD __DECONST macro to include
the cast as well. From Dag-Erling Co\xEFdan Sm\xF8rgrav.
2007-08-29 22:28:23 +00:00
agc 0920b4f20b Add a new refuse-based file system called ian - the Internet Access Node.
This utility uses FreeBSD's libfetch (updated for NetBSD, and to quieten
lint) to provide a BSD-licensed ftp/http/https file system similar to the
old alex utility. The full URL is used as the path underneath the "/ian"
mountpoint.

Sample use as follows:

	[19:09:38] agc@inspiron1300 ...examples/refuse/ian 126 > priv ian/obj/ian /ian
	[19:09:55] agc@inspiron1300 ...examples/refuse/ian 127 > cat /ian/ftp://localhost/motd
	NetBSD 4.99.27 (INSPIRON) #4: Tue Aug 7 13:04:33 BST 2007

	Welcome to NetBSD!

	This system is running a development snapshot of the NetBSD operating system,
	also known as NetBSD-current.  It is highly possible for it to contain serious
	bugs, regressions, broken features or other problems.  Please bear this in mind
	and use the system with care.

	You are encouraged to test this version as thoroughly as possible.  Should you
	encounter any problem, please report it back to the development team using the
	send-pr(1) utility (requires a working MTA).  If yours is not properly set up,
	use the web interface at: http://www.netbsd.org/support/send-pr.html

	Thank you for helping us test and improve NetBSD.

	[19:10:17] agc@inspiron1300 ...examples/refuse/ian 128 > df
	Filesystem   1K-blocks       Used      Avail %Cap Mounted on
	/dev/dk0      28101396   19491972    7204356  73% /
	kernfs               1          1          0 100% /kern
	procfs               4          4          0 100% /proc
	ptyfs                1          1          0 100% /dev/pts
	/dev/puffs           0          0          0 100% /ian
	[19:10:21] agc@inspiron1300 ...examples/refuse/ian 129 > ls -al /ian/ftp://localhost/motd
	-rw-------  1 root  wheel  705 Aug 28 19:10 /ian/ftp://localhost/motd
	[19:10:42] agc@inspiron1300 ...examples/refuse/ian 130 > ls -al ~ftp/motd
	-rw-r--r--  1 ftp  ftp  705 Aug 27 21:33 /home/ftp/motd
	[19:10:53] agc@inspiron1300 ...examples/refuse/ian 131 >
2007-08-28 19:45:02 +00:00
agc 5a236e395c Makefile for new ian file system 2007-08-28 19:39:30 +00:00
agc b143e0b001 If we're writing to a file, make sure the version we're writing is in
the topmost directory (the writable one).  If it's not there, copy the
file to there.
2007-08-20 21:55:44 +00:00
pooka 25a346d4fb Nuke PUFFSLOOKUP_FOO and move to NAMEI_FOO 2007-08-15 14:19:19 +00:00
pooka 37f06f1c57 sysctlfs was moved to base 2007-08-15 14:13:57 +00:00