| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
trimming inode drops a reference to the inode's parent, it may cause
the inode's parent also be trimmed. If the cap iterator 'p' happens to
point to the inode's parent and the inode's parent is trimmed, the cap
iterator 'p' become invalid.
Fix the issue by delaying removing cap from the seesion cap list.
(similar to what the kclient does)
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
|\
| |
| |
| |
| | |
ceph: Remove unavailable option with clang
Reviewed-by: Sage Weil <sage@inktank.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some options are unavailable in clang. (-Wstrict-null-sentinel,
-rdynamic)
They were reintroduced by this commit
https://github.com/ceph/ceph/commit/6949d221ada12e6be4b5ebf94b58edd17288fb16
This patch fixes it.
Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
|
|\ \
| | |
| | | |
ceph.spec.in: Add erasure-code related files.
|
| | |
| | |
| | |
| | | |
Signed-off-by: huangjun <hjwsm1989@gmail.com>
|
|\ \ \
| | | |
| | | | |
Update ceph-authtool.rst - Fix typo
|
| |/ /
| | |
| | | |
Fix typo
|
| | |
| | |
| | |
| | |
| | |
| | | |
fixes: #6464
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
|/ /
| |
| |
| | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
|\ \
| | |
| | |
| | |
| | | |
radosgw: create /var/log/radosgw in package, not init script
Reviewed-and-tested-by: Gary Lowell <gary.lowell@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
|
| | |
| | |
| | |
| | |
| | | |
Fixes: #6475
Signed-off-by: Sage Weil <sage@inktank.com>
|
|\ \ \ |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
Add Redhat init script option
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Resolves: 6127
Signed-off-by: Andrew Woodward <awoodward@mirantis.com>
|
|\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
fix cached crc, bug #6583
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
|/ / / /
| | | |
| | | |
| | | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Arg name changed from poolid to pool in e2602c54.
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| |_|/
|/| |
| | |
| | |
| | |
| | | |
Fixes: 6565
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
|
|\ \ \
| | | |
| | | |
| | | | |
Reviewed-by: Greg Farnum <greg@inktank.com>
Partly-Reviewed-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Test the directory fragments feature
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
fragment 'bits' should be negative for the merging case.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
delete old dirfrags after the EFragment::OP_COMMIT event is logged.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
|\ \ \ \
| | |/ /
| |/| /
| |_|/
|/| | |
|
| | |
| | |
| | |
| | | |
Signed-off-by: Sage Weil <sage@inktank.com>
|