Commit Graph

271 Commits

Author SHA1 Message Date
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
pooka
ba4e596bc9 move sysctlfs from examples to base 2007-08-09 22:01:25 +00:00
pooka
5b593f2aeb require standard mount_foo bar /path usage, where bar is ignored here 2007-08-09 21:54:27 +00:00
pooka
4a7c7712c6 * require standard mount_foo bar /path usage, where bar is ignored here
* allow only root callers to modify sysctl tree
2007-08-09 21:54:16 +00:00
pooka
e4b63c41f0 implement node_mmap and allow to specify accepted mappings on command line 2007-07-27 08:29:10 +00:00
pooka
27c5f7cba3 Match code with comment (can't really remember doing it often that
way around .. ) and initialize storage to zero when extending a file.
2007-07-22 13:19:38 +00:00
pooka
a53b2cab5e missed one place to set dirent namelen - unmiss it 2007-07-22 12:26:58 +00:00
pooka
87429c840c Oops, the cookies for nfs of course represent the *next* directory
entry offset, not the current one.
2007-07-19 10:14:53 +00:00
pooka
b4d2a683de -m for setting maxreqlen 2007-07-19 07:58:56 +00:00
pooka
ce80f00ff3 With fullpath support we need to check name lengths also, otherwise
lookup for "foo" will match "foobar".
2007-07-17 16:33:27 +00:00
pooka
9ee5fb2795 nuke accidental debug printf 2007-07-17 16:00:56 +00:00
pooka
0038fe558b Use "sysctlfs" as the type name instead of the mountpath.
Methinks it's nicer that way.
2007-07-17 12:03:46 +00:00
pooka
08db7d7534 * add mntfromname parameter to puffs_init()
* set it in file servers
2007-07-17 11:34:51 +00:00
dsl
1f7faf40a2 Change the entry for ptmx to use the netbsd ptm driver.
Delete the entries for pts/nnn and add a note at the tope (next to the
ptmx info) about using ptyfs for the pts devices.
2007-07-05 19:34:36 +00:00
pooka
3c01554a05 dtfs -f for PUFFS_KFLAG_LOOKUP_FULLPNBUF 2007-07-01 22:59:09 +00:00
pooka
6596e0c995 adapt: **newnode etc. pointers -> struct puffs_newinfo 2007-07-01 18:40:15 +00:00
pooka
fe7bbdec69 adapt: pid -> const struct puffs_cid * 2007-07-01 17:23:44 +00:00
pooka
1776bc7796 adapt: pcn->pcn_cred is now a pointer 2007-07-01 15:32:02 +00:00
pooka
53a4105885 Actually, keep PUFFS_KFLAG_NOCACHE and -o cache around as shorthand
to neither page- nor namecache.
2007-06-24 22:25:49 +00:00
pooka
5662e7f720 PUFFS_KFLAG_NOCACHE became two, so introduce the command line options
-o nonamecache and -o nopagecache and adapt file systems where necessary.
2007-06-24 22:18:38 +00:00
pooka
3aa77bc919 Just to demonstrate namemod a bit further, make this flip the case
of filenames / contents instead of rot13 if -f is given.
2007-06-24 18:59:27 +00:00
pooka
39542808a8 cast tolower() arg to unsigned char 2007-06-24 18:57:26 +00:00