Sat, 23 Mar 2019 12:41:28 -0400 |
Josef 'Jeff' Sipek |
client: GETDENT should return the object's inode number
|
Sat, 23 Mar 2019 12:49:48 -0400 |
Josef 'Jeff' Sipek |
objstore: ensure that backends' getdent ops don't return inode numbers
|
Sat, 23 Mar 2019 12:37:20 -0400 |
Josef 'Jeff' Sipek |
common: add inode number to struct ndirent
|
Sat, 16 Mar 2019 18:59:50 -0400 |
Josef 'Jeff' Sipek |
common: convert birth time if struct stat has it
|
Mon, 04 Mar 2019 17:38:35 -0500 |
Josef 'Jeff' Sipek |
remove name from volumes
|
Mon, 04 Mar 2019 17:20:27 -0500 |
Josef 'Jeff' Sipek |
objstore: require initobj op
|
Mon, 04 Mar 2019 17:08:30 -0500 |
Josef 'Jeff' Sipek |
objstore: warn about missing vol ops & initobj op during vol import/creation
|
Mon, 04 Mar 2019 16:56:29 -0500 |
Josef 'Jeff' Sipek |
objstore: assert that initialized objs have at least one version & head
|
Sat, 02 Mar 2019 21:02:57 -0500 |
Josef 'Jeff' Sipek |
objstore: add import volume vdev op
|
Sat, 02 Mar 2019 20:56:47 -0500 |
Josef 'Jeff' Sipek |
objstore: move vol structure freeing code into a separate function
|
Sat, 02 Mar 2019 20:34:08 -0500 |
Josef 'Jeff' Sipek |
objstore/mem: rely on generic code's vdev private data allocation
|
Sat, 02 Mar 2019 20:30:17 -0500 |
Josef 'Jeff' Sipek |
objstore/posix: rely on generic code's vol private data allocation
|
Sat, 02 Mar 2019 20:20:31 -0500 |
Josef 'Jeff' Sipek |
objstore/posix: rely on generic code's vdev private data allocation
|
Sat, 02 Mar 2019 20:27:03 -0500 |
Josef 'Jeff' Sipek |
objstore: automatically allocate vol private structure
|
Sat, 02 Mar 2019 20:18:43 -0500 |
Josef 'Jeff' Sipek |
objstore: automatically allocate vdev private structure
|
Sat, 02 Mar 2019 20:16:19 -0500 |
Josef 'Jeff' Sipek |
objstore: don't abuse arg pointer as a temporary variable
|
Sat, 19 Jan 2019 21:38:08 -0500 |
Josef 'Jeff' Sipek |
objstore: import all volumes on vdev import
|
Sat, 02 Mar 2019 20:49:13 -0500 |
Josef 'Jeff' Sipek |
objstore: allow vdev allocation with import-only backends
|
Sat, 02 Mar 2019 19:11:15 -0500 |
Josef 'Jeff' Sipek |
objstore: fix __add_head never adding new heads
|
Sat, 02 Mar 2019 18:00:38 -0500 |
Josef 'Jeff' Sipek |
common: extend oid uniq to 64 bits
|
Sat, 02 Mar 2019 19:05:05 -0500 |
Josef 'Jeff' Sipek |
common: check for '_' as the vclock entry separator instead of '-'
|
Sat, 02 Mar 2019 17:44:44 -0500 |
Josef 'Jeff' Sipek |
common: change host id from u32 to a u64
|
Sat, 02 Mar 2019 19:04:33 -0500 |
Josef 'Jeff' Sipek |
fs: improved panic messages during startup
|
Fri, 15 Feb 2019 10:38:39 -0500 |
Josef 'Jeff' Sipek |
fs: rewrite to use open-by-inode-number when needed
|
Fri, 15 Feb 2019 10:16:08 -0500 |
Josef 'Jeff' Sipek |
client: return the inode number in GETATTR/SETATTR results
|
Fri, 15 Feb 2019 10:57:48 -0500 |
Josef 'Jeff' Sipek |
client: implement open-by-inode-number
|
Fri, 15 Feb 2019 10:50:47 -0500 |
Josef 'Jeff' Sipek |
common: expand fscall_open & OPEN to allow open-by-inode-number
|
Fri, 15 Feb 2019 10:14:04 -0500 |
Josef 'Jeff' Sipek |
client: stash open object's oid in the ohandle struct
|
Fri, 15 Feb 2019 10:00:21 -0500 |
Josef 'Jeff' Sipek |
objstore: make objstore_getattr use cached attributes
|
Fri, 15 Feb 2019 10:14:35 -0500 |
Josef 'Jeff' Sipek |
objstore: ensure setattr obj ops never see non-zero inode numbers
|
Fri, 15 Feb 2019 09:58:01 -0500 |
Josef 'Jeff' Sipek |
objstore: ensure cached attrs have zero inode numbers
|
Fri, 15 Feb 2019 09:40:22 -0500 |
Josef 'Jeff' Sipek |
common: add inode number to struct nattr
|
Fri, 15 Feb 2019 07:58:15 -0500 |
Josef 'Jeff' Sipek |
client: implement an inode number mapping layer
|
Thu, 21 Feb 2019 18:54:05 -0500 |
Josef 'Jeff' Sipek |
common: update to libjeffpc's latest str2uXX API
|
Sat, 17 Nov 2018 22:24:24 -0500 |
Josef 'Jeff' Sipek |
objstore: {setattr,write,create,unlink} must fail with -EROFS for qualified opens
|
Sat, 19 Jan 2019 21:37:43 -0500 |
Josef 'Jeff' Sipek |
objstore: volume import function stub
|
Sat, 19 Jan 2019 21:36:44 -0500 |
Josef 'Jeff' Sipek |
objstore: return vol uuid list on vdev import
|
Sun, 02 Dec 2018 10:40:03 -0500 |
Josef 'Jeff' Sipek |
objstore: add a state to struct vdev
|
Sun, 02 Dec 2018 10:39:04 -0500 |
Josef 'Jeff' Sipek |
objstore: rename vdev list lock class to "vdevs"
|
Sun, 02 Dec 2018 10:32:02 -0500 |
Josef 'Jeff' Sipek |
objstore: reorder vdev structure members to be consistent with vol struct
|
Sun, 02 Dec 2018 10:31:40 -0500 |
Josef 'Jeff' Sipek |
objstore: reorder vol structure members to better convey locking rules
|
Sun, 02 Dec 2018 10:23:58 -0500 |
Josef 'Jeff' Sipek |
objstore: prepare generic vdev import code for automatic vol import
|
Sat, 17 Nov 2018 22:23:50 -0500 |
Josef 'Jeff' Sipek |
objstore: keep track of whether an open obj info is qualified or unqualified
|
Sat, 17 Nov 2018 22:17:20 -0500 |
Josef 'Jeff' Sipek |
objstore: remove obsolete comment
|
Sat, 17 Nov 2018 22:12:46 -0500 |
Josef 'Jeff' Sipek |
objstore: improve version finding comments
|
Sat, 17 Nov 2018 22:11:53 -0500 |
Josef 'Jeff' Sipek |
objstore: assume & assert that nversions is never zero
|
Thu, 15 Nov 2018 15:50:05 -0500 |
Josef 'Jeff' Sipek |
objstore: unqualified open should check the number of heads not versions
|
Thu, 15 Nov 2018 17:24:12 -0500 |
Josef 'Jeff' Sipek |
objstore: maintain a tree of head object versions
|
Mon, 12 Nov 2018 21:31:25 -0500 |
Josef 'Jeff' Sipek |
objstore: don't leak objvers when freeing struct obj
|
Thu, 15 Nov 2018 17:24:35 -0500 |
Josef 'Jeff' Sipek |
common: make vector clock comparison code check every element
|
Wed, 07 Nov 2018 12:21:22 -0500 |
Josef 'Jeff' Sipek |
objstore/mem: remove null clock checks in checkversion obj op
|
Wed, 07 Nov 2018 12:05:45 -0500 |
Josef 'Jeff' Sipek |
objstore: replace getversion obj op with checkversion obj op
|
Tue, 06 Nov 2018 15:32:45 -0500 |
Josef 'Jeff' Sipek |
objstore/posix: simplify getversion obj op
|
Tue, 06 Nov 2018 15:33:12 -0500 |
Josef 'Jeff' Sipek |
objstore/posix: load all versions when loading an object
|
Tue, 06 Nov 2018 15:51:28 -0500 |
Josef 'Jeff' Sipek |
objstore: add helper to easily add objvers to struct obj
|
Tue, 06 Nov 2018 16:16:58 -0500 |
Josef 'Jeff' Sipek |
objstore: assume that backends without getversion obj op cache all versions
|
Wed, 07 Nov 2018 11:49:38 -0500 |
Josef 'Jeff' Sipek |
objstore: skip version fetch for unqualified opens of objs with only one version
|
Tue, 06 Nov 2018 15:31:50 -0500 |
Josef 'Jeff' Sipek |
objstore: rename the allocobj vol op to initobj
|
Sun, 11 Nov 2018 10:48:01 -0500 |
Josef 'Jeff' Sipek |
objstore: use consistent naming for obj/objver get functions
|
Sun, 11 Nov 2018 10:26:25 -0500 |
Josef 'Jeff' Sipek |
objstore: use consistent naming for obj/objver alloc/free functions
|
Sun, 11 Nov 2018 10:21:57 -0500 |
Josef 'Jeff' Sipek |
objstore: split up the oversized vol.c
|
Wed, 07 Nov 2018 18:08:52 -0500 |
Josef 'Jeff' Sipek |
objstore: stop including objstore{,_backend}.h directly
|
Wed, 07 Nov 2018 18:06:06 -0500 |
Josef 'Jeff' Sipek |
objstore: move the impl header out of the include directory
|
Wed, 07 Nov 2018 10:58:26 -0500 |
Josef 'Jeff' Sipek |
fs: let user specify vol uuid to mount via env var
|
Wed, 07 Nov 2018 10:58:22 -0500 |
Josef 'Jeff' Sipek |
fs: use pkg-config's fuse results when building
|
Sat, 27 Oct 2018 14:33:26 +0200 |
Josef 'Jeff' Sipek |
fs: assert that we weren't handed a graft point
|
Tue, 23 Oct 2018 01:54:01 +0200 |
Josef 'Jeff' Sipek |
objstore/posix: implement getdent obj op
|
Tue, 23 Oct 2018 01:53:39 +0200 |
Josef 'Jeff' Sipek |
use struct ndirent
|
Thu, 11 Oct 2018 17:30:45 -0400 |
Josef 'Jeff' Sipek |
common: define a dirent structure
|
Mon, 05 Nov 2018 17:19:03 -0500 |
Josef 'Jeff' Sipek |
objstore: document the difference between qualified and unqualified opens
|
Mon, 05 Nov 2018 12:24:14 -0500 |
Josef 'Jeff' Sipek |
objstore: keep track of qualified vs. unqualified opens separately
|
Mon, 05 Nov 2018 12:10:51 -0500 |
Josef 'Jeff' Sipek |
objstore: remove unnecessary temporary variable
|
Mon, 05 Nov 2018 12:09:02 -0500 |
Josef 'Jeff' Sipek |
client: use the proper type to keep track of open cookies
|
Mon, 05 Nov 2018 12:07:15 -0500 |
Josef 'Jeff' Sipek |
objstore: use struct objstore_open_obj_info type for open cookies
|
Mon, 05 Nov 2018 12:02:46 -0500 |
Josef 'Jeff' Sipek |
objstore: rename open-object struct and make the name public
|
Mon, 05 Nov 2018 11:50:15 -0500 |
Josef 'Jeff' Sipek |
objstore: move the open count into the open-object structure
|
Mon, 05 Nov 2018 11:24:42 -0500 |
Josef 'Jeff' Sipek |
objstore: make the open-object cookie refer to open_obj structures
|
Mon, 05 Nov 2018 11:16:51 -0500 |
Josef 'Jeff' Sipek |
objstore: allocate & free open-object struct as needed
|
Mon, 05 Nov 2018 11:15:50 -0500 |
Josef 'Jeff' Sipek |
objstore: define an open-object struct & memory cache
|
Mon, 05 Nov 2018 11:33:17 -0500 |
Josef 'Jeff' Sipek |
objstore: remove unnecessary volume argument from obj API
|
Mon, 05 Nov 2018 10:59:09 -0500 |
Josef 'Jeff' Sipek |
admin: use the correct format string to print the default port number in usage
|
Mon, 05 Nov 2018 11:01:07 -0500 |
Josef 'Jeff' Sipek |
client: stop linking against libnsl
|
Sat, 03 Nov 2018 09:48:30 -0400 |
Josef 'Jeff' Sipek |
build: enable __BSD_VISIBLE, __XSI_VISIBLE, and _POSIX_C_SOURCE=200809L
|
Sat, 03 Nov 2018 09:40:24 -0400 |
Josef 'Jeff' Sipek |
common: work around lack of xdr_uint8_t on the system
|
Sat, 03 Nov 2018 09:38:30 -0400 |
Josef 'Jeff' Sipek |
common: define XDR x_{get.put}int32 ops only if they exist
|
Fri, 02 Nov 2018 20:34:14 -0400 |
Josef 'Jeff' Sipek |
client: convert a -ENOTUNIQ lookup_one error into a NDIRENT_TYPE_MULTI
|
Fri, 02 Nov 2018 19:46:03 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: lookup_one obj op should respect the desired entry arg
|
Fri, 02 Nov 2018 19:45:48 -0400 |
Josef 'Jeff' Sipek |
objstore/mem: lookup_one obj op should respect the desired entry arg
|
Fri, 02 Nov 2018 20:43:45 -0400 |
Josef 'Jeff' Sipek |
objstore: document the return values for objstore_lookup_one
|
Fri, 02 Nov 2018 20:43:10 -0400 |
Josef 'Jeff' Sipek |
objstore: add 'desired dirent' argument to lookup_one obj op
|
Fri, 02 Nov 2018 19:49:21 -0400 |
Josef 'Jeff' Sipek |
common: add desired dirent to LOOKUP
|
Fri, 02 Nov 2018 20:07:05 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: return the correct dirent type from lookup_one obj op
|
Fri, 02 Nov 2018 20:05:07 -0400 |
Josef 'Jeff' Sipek |
objstore: return the dirent type from lookup_one obj op
|
Fri, 02 Nov 2018 19:54:23 -0400 |
Josef 'Jeff' Sipek |
common: add result dirent type to LOOKUP response
|
Fri, 02 Nov 2018 19:55:37 -0400 |
Josef 'Jeff' Sipek |
common: define NDIRENT_TYPE_UNKNOWN dirent type
|
Fri, 02 Nov 2018 19:51:35 -0400 |
Josef 'Jeff' Sipek |
common: define NDIRENT_TYPE_MULTI dirent type
|
Fri, 02 Nov 2018 20:22:56 -0400 |
Josef 'Jeff' Sipek |
common: add a helper to check if an oid is null
|
Fri, 02 Nov 2018 19:23:12 -0400 |
Josef 'Jeff' Sipek |
objstore: rename lookup to lookup_one
|
Tue, 23 Oct 2018 00:39:40 +0200 |
Josef 'Jeff' Sipek |
fs: use noid accessor functions
|
Tue, 23 Oct 2018 00:29:18 +0200 |
Josef 'Jeff' Sipek |
fs: make a note of graft traversal needing more work
|
Tue, 23 Oct 2018 00:28:24 +0200 |
Josef 'Jeff' Sipek |
fs: don't inject . and .. entries
|
Thu, 18 Oct 2018 23:21:23 -0400 |
Josef 'Jeff' Sipek |
fs: statically assert that the fuse_ino_t is large enough
|
Tue, 17 Apr 2018 17:44:32 -0400 |
Josef 'Jeff' Sipek |
build: build the fuse binary only if we found libfuse
|
Tue, 23 Oct 2018 00:33:36 +0200 |
Josef 'Jeff' Sipek |
common: add oid accessor functions
|
Tue, 23 Oct 2018 00:00:34 +0200 |
Josef 'Jeff' Sipek |
objstore/posix: fail lookup on non-dirs with corrent error (-ENOTDIR)
|
Sat, 13 Oct 2018 19:52:13 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement lookup object op
|
Sat, 13 Oct 2018 19:51:39 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: allow specifying a fd when trying to read a version header
|
Fri, 12 Oct 2018 10:18:45 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: handle opening a null version correctly (i.e., open latest)
|
Fri, 12 Oct 2018 10:18:11 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: count object versions using the generic version walker
|
Fri, 12 Oct 2018 10:17:02 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: generic object directory walker
|
Fri, 12 Oct 2018 10:24:34 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement getversion object op
|
Fri, 12 Oct 2018 10:24:20 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement getattr object op
|
Thu, 11 Oct 2018 23:02:40 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement allocobj volume & free object ops
|
Thu, 11 Oct 2018 17:14:35 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: define object ops
|
Thu, 11 Oct 2018 17:13:53 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement volume getroot operation
|
Thu, 11 Oct 2018 17:13:26 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement volume creation
|
Thu, 11 Oct 2018 17:11:34 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement a transaction log stub API
|
Thu, 11 Oct 2018 17:08:16 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement vdev importing
|
Thu, 11 Oct 2018 17:05:56 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: implement vdev creation
|
Thu, 11 Oct 2018 17:02:04 -0400 |
Josef 'Jeff' Sipek |
objstore/posix: define in-memory vdev & volume structures
|