blobpacked: parallellize StatBlobs

Change-Id: I61962befbc7adc9662b153077a1dd772a4bdbfa9
Update more (all remaining) issue links to Github.

Change-Id: Ia796410afb292615e63f7f42b5ecda3d18d7c325
Merge "blobpacked: parallellize StatBlobs"
Use the absolute diskutil path for unmounting

Unmounting a FUSE volume on Darwin fails if diskutil is not on one's
path. This is not the default on MacOS. Make the path absolute so that
FUSE volumes unmount successfully.

Change-Id: I255be19b5b12e3ebecffc6d29dc77b6504c27f1c
deploy/gce: use subdirs for config and blobs (instead of buckets)

http://camlistore.org/issue/528

Change-Id: Icb558d7de032f9367e8fb100be87ef24c2982c23
Merge "deploy/gce: use subdirs for config and blobs (instead of buckets)"
Merge "Use the absolute diskutil path for unmounting"
blobserver: simplify BlobStreamer interface, remove limitBytes

The caller can count on its own and cancel the context.

Also, I realize again that there's no HTTP interface for this yet, since
I didn't need to update one.

Change-Id: Ie3129bdb0dbc977c1803f18288e4d1e52e2d8478
More TODO

Change-Id: Idc04a985758eea2468f40b6c629cad4c81c95f1a
Add emacs+gofmt TODO

Change-Id: Ifaeea4769c6232564e04b821f12342fc241fd9b6
server: restart camlistored from the /status handler

Fixes #558

Change-Id: I3f69ada01f958c5574d0116e78acea254a1c4430
test: make Blob.Size return uint32, not int64

Change-Id: I5f262b4e1de5907c41a7cee8d4141f57ab0c1495
fs: make a copy of the value buffer when setting an xattr

When setting an xattr bazil.org/fuse gives us a byte slice with the
attribute value to set, but it then reuses its backing array and
we end up with garbage values in our xattr maps. This CL makes a
copy of the slice before it stores it.

Bonus edit: fix a debug message typo in muDir.Remove.

Fixes #556

Change-Id: I820d8cde3065f2949ff4c506ede705194a458afb
Merge "fs: make a copy of the value buffer when setting an xattr"
blobserver: simplify interface more, add NewMultiBlobStreamer, storagetest func

This is round two of simplifying the BlobStreamer interface. The
continuation tokens are now sent per-item. This permits the following
item (NewMultiBlobStreamer) but also simplifies the return value (only
returns an error now) and permits the use of buffered channels as the
destination without getting out of sync.

The new NewMultiBlobStreamer is like io.MultiReader, but for
BlobStreamers, letting them be stitched together. This will be used by
the blobpacked storage layer to simplify its code, so it doesn't need
to deal with the handoff between loose and packed blobs itself.  This
MultiBlobStreamer needs a 1 element buffer, which wasn't compatible
with the old BlobStreamer interface, hence the change to include the
continuation tokens with the blob on the channel.

Finally, add a new storagetest function for testing any blobstreamer
and use it for NewMultiBlobStreamer, diskpacked, and later in
blobpacked.

Updates #532

Change-Id: Iccffed289adec93ca5100c7ef8b0a8d57e05833c
Merge branch 'master' of https://camlistore.googlesource.com/camlistore
blob: add weird StringMinusOne method

Change-Id: If1cb450e2131002eaa80e7f5ee2a449c745b99a6
blobpacked: restore loose blob streaming. packed blobs still a TODO.

Updates #532

Change-Id: I8256e102c375a474aa7f488fc814fe2b2b51d886
blobserver/memory: add BlobStreamer support to memory.Storage

And thus also to test.Fetcher.

Change-Id: I726dc0ddeae1d6ff22e2b645e05eb41f011c381a
blobpacked: more streaming tests

Updates #532

Change-Id: I4cf75d81dfc842296cf4efa728e67bd0ad3e3b40