summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ReplicatedPG: copy: conditionally requeue copy ops when cancelledwip-6582Greg Farnum2013-10-182-11/+19
| | | | | | | | | | | We may need to requeue copy ops which are cancelled as part of an acting set change but don't change the primary. To support this, add a "requeue" flag to cancel_copy_ops() and copy_ops(), as well as to CopyResults. The CopyCallback is then responsible for requeuing (the higher layers can't do so as they can't know which request actually triggered the copy). Signed-off-by: Greg Farnum <greg@inktank.com>
* PG: add a requeue_op() function to complement requeue_ops().Greg Farnum2013-10-182-0/+6
| | | | Signed-off-by: Greg Farnum <greg@inktank.com>
* Merge branch 'next'Gary Lowell2013-10-182-1/+7
|\
| * v0.71v0.71lastGary Lowell2013-10-172-1/+7
| |
* | Merge pull request #737 from xarses/6127Josh Durgin2013-10-171-0/+2
|\ \ | | | | | | | | | Add Redhat init script option Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
| * | Add Redhat init script optionAndrew Woodward2013-10-171-0/+2
| | | | | | | | | | | | | | | Resolves: 6127 Signed-off-by: Andrew Woodward <awoodward@mirantis.com>
* | | Merge pull request #738 from ceph/wip-cache-crcSage Weil2013-10-171-12/+17
|\ \ \ | |/ / |/| | | | | | | | fix cached crc, bug #6583 Reviewed-by: Samuel Just <sam.just@inktank.com>
| * | common/buffer: invalidate crc on zero, copy_inSage Weil2013-10-171-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does not capture users who - calc a crc - use c_str() to modify the buffer content - (re)calc a crc Signed-off-by: Sage Weil <sage@inktank.com>
| * | common/buffer: fix crc_map typesSage Weil2013-10-171-8/+8
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | common/buffer: drop unused fieldsSage Weil2013-10-171-4/+2
|/ / | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
* | qa/workunits/rest/test.py: fix mds {add,remove}_data_pool testSage Weil2013-10-171-2/+2
| | | | | | | | | | | | Arg name changed from poolid to pool in e2602c54. Signed-off-by: Sage Weil <sage@inktank.com>
* | doc/release-notes: link ot the changelogSage Weil2013-10-171-0/+2
| | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
* | doc/release-notes: v0.61.9Sage Weil2013-10-172-0/+604
| | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
* | Makefile: fix /sbin vs /usr/sbin behaviorSage Weil2013-10-174-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Instead of telling configure to put things in /sbin, explicitly put the two important items (mkcephfs and mount.fuse.ceph) in /sbin via an automake rule. This unbreaks FreeBSD 9.1 and probably others. Based on patches originally from Alan Somers <asomers@gmail.com>, modified for the current Makefile structure and applied to the specfile too. Fixes: #6456 Signed-off-by: Sage Weil <sage@inktank.com> Tested-by: Alan Somers <asomers@gmail.com>
* | OSD: check for splitting when processing recover/backfill reservationsSamuel Just2013-10-171-50/+59
| | | | | | | | | | | | Fixes: 6565 Signed-off-by: Samuel Just <sam.just@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
* | Merge pull request #691 from ceph/wip-dirfragGregory Farnum2013-10-1717-236/+611
|\ \ | | | | | | | | | Reviewed-by: Greg Farnum <greg@inktank.com> Partly-Reviewed-by: Sage Weil <sage@inktank.com>
| * | qa/workunits/misc/dirfrag: make it work on ubuntuYan, Zheng2013-10-141-5/+7
| | | | | | | | | | | | Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: optimize map element dereferenceYan, Zheng2013-10-111-17/+24
| | | | | | | | | | | | Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | qa/workunits: Add large number of files in a directory test scriptYan, Zheng2013-10-051-0/+46
| | | | | | | | | | | | | | | | | | Test the directory fragments feature Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: reduce verbosity of dir fragment loggingYan, Zheng2013-10-051-6/+6
| | | | | | | | | | | | Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: fix bloom filter leaksYan, Zheng2013-10-052-2/+3
| | | | | | | | | | | | Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: stop propagating rstat if freezing/frozen dirfrag is encountered.Yan, Zheng2013-10-052-5/+4
| | | | | | | | | | | | Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: don't scatter gather update bare-bones dirfragsYan, Zheng2013-10-051-3/+3
| | | | | | | | | | | | | | | | | | | | | avoid adding bare-bones dirfrag that has not yet been fetched from the disk to the journal. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | fragtree_t: fix get_leaves_under()Yan, Zheng2013-10-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | If fragtree is (*^1, 1*^1) and we want leaves under frag 000*. get_leaves_under() return frag 0*, frag 10* and frag 11*. This is obviously wrong. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | client: handle dirfrag mismatch when processing readdir replyYan, Zheng2013-10-052-11/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If client has outdated directory fragments information, it may request readdir an non-existent directory fragment. In this case, the MDS finds an approximate directory fragment and sends its contents back to the client. When receiving a reply with fragment that is different than the requested one, the client need to reset the 'readdir offset'. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | client: use dir_result_t::END as flagYan, Zheng2013-10-051-3/+3
| | | | | | | | | | | | | | | | | | | | | So we don't lose the latest readdir frag and offset after marking end of readdir. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: handle dirfrag mismatch when processing readdir requestYan, Zheng2013-10-051-12/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If client has outdated dirfrags information, readdir request from it may specify a non-existing dirfrag. Current method to handle this case is reply -EAGAIN and let client retry. When client receives the the -EAGAIN reply, it need to refresh its dirfrags information first, then re-send the readdir request. A better way to handle client request that specify a non-existing dirfrag is: MDS chooses a approximate dirfrag, then handle the request like normal. When client receives the readdir reply, it will also update its dirfrags information. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: fix CInode::get_dirfrags_under()Yan, Zheng2013-10-051-8/+0
| | | | | | | | | | | | | | | | | | | | | make sure it return true when all dirfrags under the given frag_t are found. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: fix MDCache::merge_dir()Yan, Zheng2013-10-051-1/+1
| | | | | | | | | | | | | | | | | | fragment 'bits' should be negative for the merging case. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: don't fragmentate stray directoriesYan, Zheng2013-10-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | the code that prepares and purges stray dentry assumes that we never freeze stray directories. So disable fragmentating stray directories temporarily. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: properly update rstat/fragstat when fragmentating directoryYan, Zheng2013-10-051-44/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The stale rstat/dirstat check in CDir::merge() is wrong. dirfrag's rstat/fragstat is stale if the accounted rstat/fragstat version isn't equal to inode's rstat/dirstat version. For CDir::split(), no need to worry about if the rstat/fragstat of the origin dirfrag is stale. If it's stale, the rstat/fragstat of the resulting dirfrags are stale too. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: properly store fragmenting dirfragsYan, Zheng2013-10-051-2/+4
| | | | | | | | | | | | | | | | | | | | | fragmenting dirfrag does not exist on the object store. So all non-null dentries should be included when committing a fragmenting dirfrag. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: trim log segment after finishing uncommitted fragmentsYan, Zheng2013-10-054-5/+25
| | | | | | | | | | | | Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: delete orphan dirfrags during MDS recoversYan, Zheng2013-10-053-36/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch make the MDS use following steps to fragmentate directory. 1. freeze the old dirfrags 2. journal EFragment::OP_PREPARE 3. store the new dirfrags 4. journal EFragment::OP_COMMIT 5. delete the old dirfrags 6. journal EFragment::OP_FINISH The newly introduced event EFragment::OP_FINISH indicates that all orphan frags have been deleted. The new process guarantees that orphan frags can be properly deleted if the MDS crashes while fragmentating directory. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: journal original dirfrags for rollbackYan, Zheng2013-10-054-18/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fragments with different 'bits' can be merged into one fragment. So we can't use 'basefrag' and 'bits' to calculate the original fragments when rolling back a merge operation. We also can't rely on MDCache::adjust_dir_fragments() to restore the original fragments' statistics during rolling back. This is because fragments are not always complete in the rollback case. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: delete orphan dirfrags after fragmentating directoryYan, Zheng2013-10-043-26/+115
| | | | | | | | | | | | | | | | | | delete old dirfrags after the EFragment::OP_COMMIT event is logged. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
| * | mds: start internal MDS request for fragmentating directoryYan, Zheng2013-10-044-88/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | Start internal MDS request for fragmentating directory operation. With MDS request, we can easily acquire locks required by the fragmentating directory operation. (The old way to get locks is 'try lock' style, which is not reliable) Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
* | | Merge remote-tracking branch 'gh/next'Sage Weil2013-10-161-0/+1
|\ \ \ | | |/ | |/|
| * | .gitignore: ceph-kvstore-toolSage Weil2013-10-161-0/+1
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
* | | Merge remote-tracking branch 'gh/next'Sage Weil2013-10-1618-135/+642
|\ \ \ | |/ /
| * | debian, specfile: fix ceph-kvstore-tool packagingSage Weil2013-10-162-2/+2
| | | | | | | | | | | | | | | | | | See da69fa09c8274585225471c68c1acc788a3881f4 Signed-off-by: Sage Weil <sage@inktank.com>
| * | Merge pull request #732 from ceph/wip-kvstore-toolSage Weil2013-10-163-14/+125
| |\ \ | | | | | | | | | | | | | | | | tools: ceph-kvstore-tool: Access & manipulate leveldb store using the KeyValueDB interface Reviewed-by: Sage Weil <sage@inktank.com>
| | * | ceph-kvstore-tool: copy one leveldb store to some other placeJoao Eduardo Luis2013-10-161-4/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Iterates over the provided source store's keys and copies them to the provided destination store. Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
| | * | ceph-kvstore-tool: calc store crcJoao Eduardo Luis2013-10-161-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Reuse 'list()' function to traverse the store and calc not only version's crcs, but also calc the store's crc. Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
| | * | tools: move 'test_store_tool' to 'tools/ceph-kvstore-tool'Joao Eduardo Luis2013-10-163-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | ceph-kvstore-tool allows for lower-level access to leveldb stores. Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
| * | | Merge pull request #729 from ceph/wip-5716Josh Durgin2013-10-152-26/+60
| |\ \ \ | | | | | | | | | | | | | | | | | | | | rgw: gracefully handle bad root pool names Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
| | * | | rgw: gracefully handle bad root pool nameswip-5716Yehuda Sadeh2013-10-152-26/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: #5716 When invalid root pools specified (don't start with a period) we return with an error instead of asserting. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * | | | test/filestore/run_seed_to.sh: avoid obsolete --filestore-xattr-use-omapSage Weil2013-10-151-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This option no longer exists. Signed-off-by: Sage Weil <sage@inktank.com>
| * | | | MonCommands: note that pg dump options don't work in plaintextGreg Farnum2013-10-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Greg Farnum <greg@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
| * | | | ceph_test_rados: fix snap remove vs rollback fixSage Weil2013-10-151-6/+7
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 55d279b98553ba4542219b126fc7159b20b18b1f we tried to fix a race between rollback and snap removal, but got the logic wrong: we need to prevent *snap removal* on in-use snaps, not prevent multiple rollbacks on the same snap. Fixes: #6254 (again) Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>