<feed xmlns='http://www.w3.org/2005/Atom'>
<title>teythoon/hurd.git/isofs, branch master</title>
<subtitle>Personal Hurd development repository</subtitle>
<id>https://darnassus.sceen.net/cgit/teythoon/hurd.git/atom?h=master</id>
<link rel='self' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/'/>
<updated>2016-08-07T21:28:45Z</updated>
<entry>
<title>libpager: provide 'pager_create_alloc'</title>
<updated>2016-08-07T21:28:45Z</updated>
<author>
<name>Justus Winter</name>
<email>justus@gnupg.org</email>
</author>
<published>2016-05-22T17:35:10Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=0e3a795af98b6441d0a9928036e140978511e272'/>
<id>urn:sha1:0e3a795af98b6441d0a9928036e140978511e272</id>
<content type='text'>
Add a variant to 'pager_create' that allocates memory for the user
hook next to the pager data increasing locality.

* console/pager.c (pager_clear_user_data): Fix type of 'idx', do not
free 'upi'.
(user_pager_create): Use the new function.
* doc/hurd.texi: Document new function.
* ext2fs/pager.c (pager_clear_user_data): Don't free 'upi'.
(diskfs_get_filemap): Use the new function.
* fatfs/pager.c (pager_clear_user_data): Don't free 'upi'.
(diskfs_get_filemap): Use the new function.
* isofs/pager.c (pager_clear_user_data): Don't free 'upi'.
(diskfs_get_filemap): Use the new function.
* libpager/pager-create.c (_pager_create): New generic allocation
function.
(pager_create): Use the new generic function.
(pager_create_alloc): New function.
* libpager/pager.h (pager_create_alloc): New prototype.
</content>
</entry>
<entry>
<title>isofs: make superblock detection more robust</title>
<updated>2016-04-17T15:08:26Z</updated>
<author>
<name>Justus Winter</name>
<email>justus@gnupg.org</email>
</author>
<published>2016-04-17T14:36:32Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=21ee0e79e90c3cf63613bc1a00a609cfaf1777b2'/>
<id>urn:sha1:21ee0e79e90c3cf63613bc1a00a609cfaf1777b2</id>
<content type='text'>
* isofs/isofs.h (disk_image_len): New variable.
* isofs/main.c (read_sblock): Avoid out of bounds access.
* isofs/pager.c (disk_image_len): New variable.
(create_disk_pager): Initialize 'disk_image_len'.
</content>
</entry>
<entry>
<title>Drop OTHERLIBS and use LDLIBS exclusively</title>
<updated>2015-12-31T20:47:32Z</updated>
<author>
<name>Flavio Cruz</name>
<email>flaviocruz@gmail.com</email>
</author>
<published>2015-12-31T16:49:25Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=a70c7531ed3a6378dd527da005a1fe63fbb4871a'/>
<id>urn:sha1:a70c7531ed3a6378dd527da005a1fe63fbb4871a</id>
<content type='text'>
When cross-compiling, OTHERLIBS magically turns -lpthread into the path
to the host libpthread.so file, resulting in build issues. LDLIBS does
not suffer from this problem and it seems that is already being used in
other Makefiles. This patch removes OTHERLIBS entirely from the build
system.

* Makeconf: Remove references to OTHERLIBS
* auth/Makefile: Replace OTHERLIBS with LDLIBS.
* boot/Makefile: Likewise.
* console/Makefile: Likewise.
* exec/Makefile: Likewise.
* ext2fs/Makefile: Likewise.
* fatfs/Makefile: Likewise.
* ftpfs/Makefile: Likewise.
* hostmux/Makefile: Likewise.
* isofs/Makefile: Likewise.
* libhurd-slab/Makefile: Likewise.
* nfs/Makefile: Likewise.
* nfsd/Makefile: Likewise.
* pfinet/Makefile: Likewise.
* proc/Makefile: Likewise.
* procfs/Makefile: Likewise.
* random/Makefile: Likewise.
* storeio/Makefile: Likewise.
* term/Makefile: Likewise.
* tmpfs/Makefile: Likewise.
* usermux/Makefile: Likewise.
</content>
</entry>
<entry>
<title>fix compiler warnings in hurd/isofs</title>
<updated>2015-12-29T21:42:39Z</updated>
<author>
<name>Flavio Cruz</name>
<email>flaviocruz@gmail.com</email>
</author>
<published>2015-12-29T21:34:20Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=42d04ae6ab017b65c6721dd4e9823c34b3656229'/>
<id>urn:sha1:42d04ae6ab017b65c6721dd4e9823c34b3656229</id>
<content type='text'>
* isofs/rr.c (rrip_work): Use unsigned char.
* isofs/rr.h: Use unsigned char instead of char.
</content>
</entry>
<entry>
<title>isofs: port to libdiskfs' node cache</title>
<updated>2015-04-17T20:16:14Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-04-15T14:26:31Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=4266bb02b1f3342d3fc4920c07c71592a14acdd9'/>
<id>urn:sha1:4266bb02b1f3342d3fc4920c07c71592a14acdd9</id>
<content type='text'>
* isofs/inode.c: Drop all cache-related code.
(diskfs_user_make_node): New function.
(calculate_file_start): Check for `record' being null.
(cache_id): New function.
(read_node): Rename to diskfs_user_read_node and adopt accordingly.
(diskfs_try_dropping_softrefs): Rename to diskfs_user_try_dropping_softrefs.
* isofs/isofs.h (struct lookup_context): New definition.
(cache_id): New declaration.
* isofs/lookup.c (diskfs_lookup_hard): Adjust accordingly.
* isofs/main.c (fetch_root): Likewise.
</content>
</entry>
<entry>
<title>libdiskfs: lock-less reference counting of nodes</title>
<updated>2015-04-17T12:06:46Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2014-05-14T09:19:35Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=c16eed2cb64089bf7d958db0fe85352f4ceefb4d'/>
<id>urn:sha1:c16eed2cb64089bf7d958db0fe85352f4ceefb4d</id>
<content type='text'>
* libdiskfs/diskfs.h (struct node): Use refcounts_t for reference counting.
(diskfs_node_refcnt_lock): Remove.
(diskfs_node_norefs,diskfs_drop_node): Change comments accordingly.
* libdiskfs/init-init.c: Adjust accordingly.
* libdiskfs/node-drop.c: Likewise.
* libdiskfs/node-make.c: Likewise.
* libdiskfs/node-nput.c: Likewise.
* libdiskfs/node-nputl.c: Likewise.
* libdiskfs/node-nref.c: Likewise.
* libdiskfs/node-nrefl.c: Likewise.
* libdiskfs/node-nrele.c: Likewise.
* libdiskfs/node-nrelel.c: Likewise.
* ext2fs/inode.c: Likewise.
* fatfs/inode.c: Likewise.
* isofs/inode.c: Likewise.
* tmpfs/node.c: Likewise.
* doc/hurd.texi: Likewise.
</content>
</entry>
<entry>
<title>isofs: use a seperate lock to protect node_cache</title>
<updated>2015-04-17T12:06:45Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2014-05-13T13:16:31Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=f4823c00581eb91e5b42169405e641463256bbfa'/>
<id>urn:sha1:f4823c00581eb91e5b42169405e641463256bbfa</id>
<content type='text'>
Previously, isofs used diskfs_node_refcnt_lock to serialize access to
the node_cache.

Use a separate lock to protect node_cache.  Adjust the reference
counting accordingly.  Every node in the node_cache carries a light
reference.  When we are asked to give up that light reference, we
reacquire our lock momentarily to check whether someone else
reacquired a reference through the node_cache.

* isofs/inode.c (nodecache_lock): New lock.
(inode_cache_find): Use a separate lock to protect node_cache.
Adjust the reference counting accordingly.
(diskfs_cached_lookup): Likewise.
(load_inode): Likewise.
(cache_inode): Update comment accordingly.
(diskfs_node_iterate): Likewise.
(diskfs_node_norefs): Move the code removing the node from node_cache...
(diskfs_try_dropping_softrefs): ... here, where we check whether
someone reacquired a reference, and if so hold on to our light
reference.
</content>
</entry>
<entry>
<title>Replace `bcopy' with `memcpy' or `memmove' as appropriate</title>
<updated>2014-12-10T15:09:53Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2014-12-01T23:20:51Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=82a87d043498eeacb7e4f3edc85d1b7c424ea853'/>
<id>urn:sha1:82a87d043498eeacb7e4f3edc85d1b7c424ea853</id>
<content type='text'>
* ext2fs/inode.c: Replace `bcopy' with `memcpy' or `memmove' as
appropriate.
* ext2fs/pager.c: Likewise.
* isofs/lookup.c: Likewise.
* isofs/main.c: Likewise.
* isofs/rr.c: Likewise.
* libdiskfs/file-get-trans.c: Likewise.
* libiohelp/return-buffer.c: Likewise.
* libpager/pagemap.c: Likewise.
* libpipe/pq.c: Likewise.
* libpipe/pq.h: Likewise.
* libstore/unzipstore.c: Likewise.
* mach-defpager/default_pager.c: Likewise.
* pfinet/ethernet.c: Likewise.
* pfinet/tunnel.c: Likewise.
* storeio/dev.c: Likewise.
</content>
</entry>
<entry>
<title>Replace `bzero' with `memset'</title>
<updated>2014-12-10T12:45:05Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2014-12-01T22:55:25Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=0a4ada8d40fb687a659161ff7e0d1d0994264402'/>
<id>urn:sha1:0a4ada8d40fb687a659161ff7e0d1d0994264402</id>
<content type='text'>
For reference, this patch was created using the following semantic
patch, and then manually applying the change in all functions
containing nested functions, as those are not supported by Coccinelle.

@@
expression A, B;
@@

- bzero (A, B)
+ memset (A, 0, B)

* auth/auth.c: Replace `bzero' with `memset'.
* boot/boot.c: Likewise.
* defpager/defpager.c: Likewise.
* exec/exec.c: Likewise.  Also, drop `safe_bzero' and just use
`hurd_safe_memset' directly.
* ext2fs/ext2fs.c: Likewise.
* ext2fs/getblk.c: Likewise.
* ext2fs/pager.c: Likewise.
* fatfs/pager.c: Likewise.
* ftpfs/dir.c: Likewise.
* ftpfs/netfs.c: Likewise.
* isofs/inode.c: Likewise.
* isofs/pager.c: Likewise.
* libdiskfs/file-getfh.c: Likewise.
* libdiskfs/file-statfs.c: Likewise.
* libfshelp/fetch-root.c: Likewise.
* libfshelp/start-translator.c: Likewise.
* libftpconn/create.c: Likewise.
* libftpconn/open.c: Likewise.
* libftpconn/unix.c: Likewise.
* libpipe/pipe.c: Likewise.
* libps/procstat.c: Likewise.
* libps/spec.c: Likewise.
* libshouldbeinlibc/cacheq.c: Likewise.
* libshouldbeinlibc/idvec.c: Likewise.
* libshouldbeinlibc/ugids.c: Likewise.
* libstore/argp.c: Likewise.
* libstore/enc.c: Likewise.
* libstore/kids.c: Likewise.
* libthreads/alpha/thread.c: Likewise.
* libtreefs/fsys.c: Likewise.
* libtrivfs/file-statfs.c: Likewise.
* mach-defpager/default_pager.c: Likewise.
* pfinet/glue-include/asm/uaccess.h: Likewise.
* pfinet/io-ops.c: Likewise.
* pfinet/options.c: Likewise.
* pfinet/socket.c: Likewise.
* pfinet/timer-emul.c: Likewise.
* pflocal/io.c: Likewise.
* startup/startup.c: Likewise.
* storeio/storeio.c: Likewise.
* sutils/fstab.c: Likewise.
* usermux/usermux.c: Likewise.
* utils/fakeauth.c: Likewise.
* utils/frobauth.c: Likewise.
* utils/login.c: Likewise.
* utils/x.c: Likewise.
</content>
</entry>
<entry>
<title>Include the MIG-generated server header files</title>
<updated>2014-04-15T19:11:57Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2014-04-15T16:38:08Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=20e078293697dd99ddcf2c2151c9f075409cc185'/>
<id>urn:sha1:20e078293697dd99ddcf2c2151c9f075409cc185</id>
<content type='text'>
This enables the compiler to check that the server function
declarations match MIGs expectations.  Fix a few oddities along the
way.

* console-client/trans.c: Include MIG-generated server header file(s).
* console/console.c: Likewise.  Also, fix declarations.
* console/mutations.h (TIOCTL_IMPORTS): Just use libnetfs/priv.h.
* console/priv.h: Delete now unused file.
* ext2fs/storeinfo.c: Include MIG-generated server header file(s).
* fatfs/inode.c: Likewise.
* fatfs/main.c: Likewise.  Also, fix declaration.
* isofs/inode.c: Likewise.
* libdiskfs/boot-start.c: Likewise.
* libdiskfs/file-chg.c: Include the correct MIG-generated server header file.
* libdiskfs/file-chmod.c: Include MIG-generated server header file(s).
* libdiskfs/file-get-fs-opts.c: Likewise.
* libdiskfs/init-startup.c: Likewise.
* libnetfs/file-get-children.c: Likewise.
* libnetfs/file-getcontrol.c: Include the correct MIG-generated server
header file.
* libnetfs/file-set-translator.c: Include MIG-generated server header file(s).
* libnetfs/fsstubs.c: Likewise.
* libtrivfs/file-access.c: Likewise.
* libtrivfs/file-chauthor.c: Likewise.
* libtrivfs/file-chflags.c: Likewise.
* libtrivfs/file-chg.c: Likewise.
* libtrivfs/file-chmod.c: Likewise.
* libtrivfs/file-chown.c: Likewise.
* libtrivfs/file-exec.c: Likewise.
* libtrivfs/file-get-children.c: Likewise.
* libtrivfs/file-get-fs-options.c: Likewise.
* libtrivfs/file-get-source.c: Likewise.
* libtrivfs/file-get-storage-info.c: Likewise.
* libtrivfs/file-get-trans.c: Likewise.
* libtrivfs/file-get-transcntl.c: Likewise.
* libtrivfs/file-getcontrol.c: Likewise.
* libtrivfs/file-getfh.c: Likewise.
* libtrivfs/file-getlinknode.c: Likewise.
* libtrivfs/file-lock.c: Likewise.
* libtrivfs/file-reparent.c: Likewise.
* libtrivfs/file-set-size.c: Likewise.
* libtrivfs/file-set-trans.c: Likewise.
* libtrivfs/file-statfs.c: Likewise.
* libtrivfs/file-sync.c: Likewise.
* libtrivfs/file-syncfs.c: Likewise.
* libtrivfs/file-utimes.c: Likewise.
* libtrivfs/fsys-forward.c: Likewise.
* libtrivfs/fsys-get-options.c: Likewise.
* libtrivfs/fsys-getroot.c: Likewise.
* libtrivfs/fsys-goaway.c: Likewise.
* libtrivfs/fsys-set-options.c: Likewise.
* libtrivfs/fsys-stubs.c: Likewise.
* libtrivfs/fsys-syncfs.c: Likewise.
* libtrivfs/io-async-icky.c: Likewise.
* libtrivfs/io-async.c: Likewise.
* libtrivfs/io-duplicate.c: Likewise.
* libtrivfs/io-identity.c: Likewise.
* libtrivfs/io-map.c: Likewise.
* libtrivfs/io-modes-get.c: Likewise.
* libtrivfs/io-modes-off.c: Likewise.
* libtrivfs/io-modes-on.c: Likewise.
* libtrivfs/io-modes-set.c: Likewise.
* libtrivfs/io-owner-get.c: Likewise.
* libtrivfs/io-owner-mod.c: Likewise.
* libtrivfs/io-pathconf.c: Likewise.
* libtrivfs/io-read.c: Likewise.
* libtrivfs/io-readable.c: Likewise.
* libtrivfs/io-reauthenticate.c: Likewise.
* libtrivfs/io-restrict-auth.c: Likewise.
* libtrivfs/io-revoke.c: Likewise.
* libtrivfs/io-seek.c: Likewise.
* libtrivfs/io-select.c: Likewise.
* libtrivfs/io-stat.c: Likewise.
* libtrivfs/io-stubs.c: Likewise.
* libtrivfs/io-version.c: Likewise.
* libtrivfs/io-write.c: Likewise.
* pfinet/tunnel.c: Likewise.
* storeio/io.c: Likewise.
* storeio/storeio.c: Likewise.
* term/users.c: Likewise.
* tmpfs/node.c: Likewise.
* trans/fakeroot.c: Likewise.  Also, include all server headers that provide
the X_server_routine functions...
(netfs_demuxer): ... that were previously declared here.
* trans/fifo.c: Include MIG-generated server header file(s).
* trans/firmlink.c: Likewise.
* trans/hello-mt.c: Likewise.
* trans/hello.c: Likewise.
* trans/magic.c: Likewise.
* trans/mtab.c: Likewise.
* trans/new-fifo.c: Likewise.
* trans/null.c: Likewise.
* trans/proxy-defpager.c: Likewise.
* trans/streamio.c: Likewise.
* libdiskfs/fsmutations.h: Qualify the import with the libraries path.
Without this change, out-of-tree builds would no longer work.
* libnetfs/mutations.h: Likewise.
* libtrivfs/mig-mutate.h: Likewise.
</content>
</entry>
</feed>
