summaryrefslogtreecommitdiff
path: root/sys/src/cmd/cwfs
AgeCommit message (Collapse)Author
2017-10-29cwfs: use /dev/swap instead of #c/swap to determine memory sizecinap_lenrek
2017-08-04cwfs: -n always overrides postservice() name, no matter if config mode ↵cinap_lenrek
changes service
2017-04-29cwfs: allow "none" user to rename filescinap_lenrek
2017-03-06cwfs: handle DMTMP flag in createcinap_lenrek
2017-01-30cwfs: handle worm exhaustion more gracefullycinap_lenrek
don't deadlock when cwgrow() detects we'r out of worm space by releasing the cache superblock buffer. don't allocate space beyond the worm device when dumping by having slit() check. after cwrecur(), we check if there are enougth blocks remaining to write the dump date directories and superblocks.
2017-01-27cwfs: fix cwcmd startdumpcinap_lenrek
2016-07-24make error handling in 9p service loops consistentcinap_lenrek
when we get eof, stop the loop immidiately and do not rely on the read to eventually return an error. when convM2S() fails to decode the message, error out and stop the loop. there is no point in continuing.
2016-01-07format pointer subtraction results with %zd instead of %ld (for long -> ↵cinap_lenrek
intptr on amd64)
2015-10-09cwfs: fix wstat() failing to mark block dirty when noatime is setcinap_lenrek
code assumed the accessdir() call would always mark the block dirty, but this is not the case when noatime flag is enabled. this was reported by michael in bug: "open/with_noatime_option_cwfs_doesnt_preserve_changes_in_file_permissionowner" -- cinap
2015-09-26cwfs: various cleanupscinap_lenrek
- consistently refer to Dentry.name length with NAMELEN - make sure whoname is null terminated - remove useless nil check for whoname
2015-09-26cwfs: don't use sprint() to fill directory namecinap_lenrek
sprint() will replace invalid utf8 sequences with U+FFFD which caused directory reads and stats to return the wrong filename. just strcpy the name bytes.
2015-09-12cwfs: initialize /env/timezone on boot so dumps are in localtimecinap_lenrek
when /env/timezone file is missing (boot case), copy /adm/timezone/local to /env/timezone so localtime() can correct timezone offset.
2015-08-21cwfs: remove 9p1 supportcinap_lenrek
2015-08-20cwfs: adjust for new libauthsrv changescinap_lenrek
2015-08-05cwfs: set permission of / to 0775 on reamcinap_lenrek
this allows members of the -1 group to create new directories in / without having to fiddle with the fileserver console. this also makes it consistent to hjfs.
2014-08-11cwfs: add optional uid argument to allow command, unify permission override codecinap_lenrek
the allow command now takes an optional uid argument for the user to be granted temporary god status on the fileserver for maintenance. this was kenji okomotos idea, so thanks :) remove wstatallow and writeallow flags. instead, we have global: int allowed; that contains the uid of the currently allowed user id or -1 if permission checking is globally disabled for the fileserver. when zero, normal permission checking takes place. added int isallowed(File*) function that returns non-zero when the context is the console, or the allowed user. this is also used internally by iaccess(), so all the extra code of in the callers of iaccess() is gone now. dont conflate allowed user with noauth flag and auto-allow on ream. the installer already knows about noauth and allow flags so theres no problem with bootstraping.
2014-08-09cwfs: fix 32bit multiplication overflows for allocation sizes (thanks kenji ↵cinap_lenrek
okomoto)
2014-05-03cwfs: fix 1GB memsize limitationcinap_lenrek
the malloc pool allocator is limited in its allocation size. as almost all data structures in cwfs are never freed, use brk() in ialloc() instead of mallocalign(). this means memory returned by ialloc() cannot be freed! to make sure we do not call free by accident, remove the #define malloc(n) ialloc(n, 0) macro and use ialloc() directly as in the original code to show the intend of permanent allocations.
2014-02-07cwfs: limit memsize() to 1GB until pool can handle huge allocationscinap_lenrek
2014-02-01cwfs: use pragma pack for on disk structures for amd64cinap_lenrek
2013-10-16cwfs: fix putbuf(nil) in error case of cmd_check()cinap_lenrek
2013-10-11cwfs: add checktag() call for cache bucket in dumpblock(), fix error stringscinap_lenrek
2013-10-11cwfs: more checking for cfsdump(), cleanup Tsuper hack in cwrecur()cinap_lenrek
add checktag and nil checks in cfsdump() making sure to notice when the roroot directory structures is corrupted. cwrecur() used tag == Tsuper to indicate that this is the first level recursive invocation. this is confusing as we really expect Tdir tag in that case for the root directory. instead, we now pass the correct tag (Tdir) and use cw->depth > 1 to see if we are past the root. the block tag was only checked when the block was not in the memory cache. check the tag always!
2013-08-08cwfs: fix out of order repliescinap_lenrek
using a shared reply queue and a pool of worker procs does result in replies to be send out of order under some conditions. the symptoms are mnt errors when interrupting requests (Rflush arriving before the original requests response). this change gives each connection its own reply queue and its own srvo process. so now a connection consists of one reply queue, a srvi process reading the connections file descriptor and a srvo process reading the reply queue and writng replies to the connections file descriptor. the srvi processes live as long as the connection is established. the srvo prcoesses live forever and are attached to the chan (which gets reused). to avoid excessive process creation, we limit the number of connections to 30. srvchan() returns nil when all 30 network channels are in use.
2013-08-07cwfs: use atomic compare and swap to avoid semacquire() syscalls in new ↵cinap_lenrek
queue implementation
2013-08-05fix this megashitcinap_lenrek
2013-08-05cwfs: remove reflockcinap_lenrek
queues allow multiple readers, reflock seems unneccesary.
2013-08-04cwfs: faster queue implementation using semacquire()cinap_lenrek
2013-07-18cwfs: add rtmp flag for check command to remove temporary files after recovercinap_lenrek
2013-02-25cwfs: fix mtime for dump yyyy directoriescinap_lenrek
2013-01-309p message size too smallcinap_lenrek
various fileservers do not check if the message size is too small (they subtract IOHDRSZ later from it to calculate iounit) which can overflow.
2012-12-07cwfs: allow previously authorized channels to attach as nonecinap_lenrek
we allow allow previously authorized channels to attach as none even if anonymous logins are disabled with nonone.
2012-12-07cwfs: make none attach workcinap_lenrek
allow attach as none. (this was supposed to work but it doesnt for 9p2000 because we have to check for afid being NOFID instead of checking the uname string). and add "nonone" flag to disable this.
2012-08-01cwfs: fix read offset integer overflowcinap_lenrek
2012-07-24cwfs: remove noatime runtime optioncinap_lenrek
2012-07-24cwfs: make sure we do a full dump after toggling noatimecinap_lenrek
2012-07-23cwfs: fix noatime dumpscinap_lenrek
2012-07-14cwfs: noatime flagcinap_lenrek
2012-07-13cwfs: make /srv/cwfs.cmd redable to receive command outputcinap_lenrek
before, cwfs would print everything to /dev/cons. this change will redirect the output of commands to the /srv/cwfs.cmd pipe so one can use: con -C /srv/cwfs.cmd and not have the fish for the output in /dev/kmesg. use standard error (/dev/cons) for unsolicited messages as there is not always a reader on the command file.
2012-07-12cwfs: set whochan for who command, cleanupcinap_lenrek
2012-05-21cwfs: fix disappearing /tmp +t bugcinap_lenrek
2012-05-18cwfs: add fsmempercent enviroment variable to control iobuffer allocationcinap_lenrek
2012-04-14cwfs: write superblocks to worm immidiately after ream to avoid scary ↵cinap_lenrek
touchsb error message
2012-02-23correcting unicode superscripts for 1 2 and 3cinap_lenrek
2011-12-12cwfs: simplify checkname, allow space charactercinap_lenrek
2011-09-07cwfs: cfs needs to run after con_session(), so revert previous change and ↵cinap_lenrek
just run consserve() before starting the srv procs
2011-09-07cwfs: fix race between cmd_exec("users") and serve processes, cleanup portfns.hcinap_lenrek
2011-09-07cwfs: fix use after free bug (ai->cuid), remove waitedfor abort()cinap_lenrek
2011-07-22cwfs: fixed memsize()aiju
2011-07-21cwfs: fix auth filedescriptor leakcinap_lenrek