Meta server: add end offset to the range truncate reply to indicate that the range truncate is supported. Add chunk count to the b+tree search condition in truncate.
Meta server: disallow implicit conversion from Key to PartialMatch by removing the relevant constructor. Fix chunk iterator Tree::truncate() construction.
Meta server: another truncate() optimization: search for the chunk with offset equal or larger than requested, and if found use the file attribute pointer stored in the chunk map entry. Optimize getLastChunkInfo by using b+tree search if the last chunk offset is more than 8 chunks apart from the first chunk, and the number of chunks in the file is greater than 8. Change get alloc with start offset [only] used by get layout to return chunks with offset equal or greater than the specified offset. Minor LayoutManager::UpdateDelayedRecovery() optimization: use scratch vector to retrieve chunks information.
Meta server: use ChunkInfo::getAttr() as file attribute pointer is now stored in the chunk leaf nodes.
Merge remote-tracking branch 'jfishman/master'
Meta server: implement truncate set EOF hint optimization to avoid redundant b+tree terminal node traversal in the common case of setting striped files logical EOF.
Meta server: optimize chunk node retrieval in getalloc() version that retrieves chunk block, and truncate by using binary search in [a few (1 or 2)] adjacent leaf nodes if chunk position is close enough to the current node, otherwise use B+tree search.
Qfs tools: change sequence number parameter type from int32_t to kfsSeq_t to make these consistent with other RPCs.
Meta server: use range truncate to implement "prune from head".[The only reason not to remove "prune from head" is that it can be trivially implemented by invoking range truncate.] Rework append logical EOF handling: always set EOF to the next chunk boundary, instead of attempting to use the actual last chunk size, in order to reduce the meta transaction log size / bandwidth, simplify range delete, and avoid possible last chunk info searches / retrieval attempts in order to calculate/update logical EOF. Append file are sparse by design, therefore using the same EOF handling / mechanism as with non / append "replicated" files doesn't make much sense: it doesn't serve any particular purpose, while increases complexity, and uses system resources (primarily cpu).
Qfs client lib: add and use with non striped files truncate set EOF hint. Add "End-offset" filed to truncate RPC to implement range truncate.
Qfs client lib: implement range truncate support detection / validation; add truncate right boundary to the Show() output.
Qfs client lib: fix truncate show() output formatting.
Meta server: fix status code conversion in chunk server reply path resulted in the status code sign reversal. It looks like that this mainly affected chunk allocation failure detection as the relevant failure detection condition is "less than zero", where in most (all?) of other places affected, the failure conditions are "not equal zero". The effect of the allocation failure mis-detection isn't detrimental, as the undetected chunk allocation manifests itself later on, as write id allocation failure. This bug reduces the failure tolerance in the cases where all chunk servers involved in allocation fail to allocate the chunk, as this would result in no replicas available for "re-allocation" leading to potential write failure if the file was created with no recovery. The bug also reduces failure tolerance in other cases as the initial allocation would result in allocation of less replicas than requested. Though probably most common case of the relevant chunk allocation failures would be "out of space", as the request timeout logic isn't affected by this bug, therefore the practical effect of this bug seems low, or, at best, moderate right now.
fuse: include unistd.h for fork(2).  fixes #19
Meta server: fix return code of Tree::getalloc(fid, offset, chunk_info_vector, max_chunks) in the case when leaf node search returns next file, i.e. no chunks exists after the specified offset.
Merge branch 'master' of github.com:/quantcast/qfs
Meta server: make get layout to return success status and no chunks in the case if no chunks past the specified offset / position exist. This is needed to correctly support sort master use of the range truncate with append files.
Merge remote-tracking branch 'jfishman/master'

Builds a bundled mstress jar and tar file, excluded from the ALL target of the main build, using ant
Merge branch 'master' of github.com:quantcast/qfs
delete buffer in qfssample_main